|
7 | 7 | ; FIXME: Passing real values for workitem ID, and 0s that can be undef
|
8 | 8 |
|
9 | 9 | ; CHECK-LABEL: indirect_call_known_no_special_inputs:
|
10 |
| -; CHECK: s_mov_b64 s[8:9], 0 |
11 |
| -; CHECK: s_mov_b32 s12, s6 |
12 |
| -; CHECK: v_mov_b32_e32 v31, v0 |
13 |
| -; CHECK: s_swappc_b64 |
| 10 | + |
| 11 | +; CHECK-DAG: s_cselect_b64 [[CALL_TARGET:s\[[0-9]+:[0-9]+\]]] |
| 12 | +; CHECK-DAG: s_mov_b64 s[8:9], 0 |
| 13 | +; CHECK-DAG: s_mov_b32 s12, s6 |
| 14 | +; CHECK-DAG: v_mov_b32_e32 v31, v0 |
| 15 | +; CHECK: s_swappc_b64 s[30:31], [[CALL_TARGET]] |
14 | 16 |
|
15 | 17 | ; CHECK: .amdhsa_kernarg_size 0
|
16 | 18 | ; CHECK-NEXT: .amdhsa_user_sgpr_private_segment_buffer 1
|
|
28 | 30 | ; CHECK-NEXT: .amdhsa_system_vgpr_workitem_id 0
|
29 | 31 | define amdgpu_kernel void @indirect_call_known_no_special_inputs() {
|
30 | 32 | bb:
|
31 |
| - %tmp = select i1 undef, void (i8*, i32, i8*)* bitcast (void ()* @wobble to void (i8*, i32, i8*)*), void (i8*, i32, i8*)* bitcast (void ()* @snork to void (i8*, i32, i8*)*) |
| 33 | + %cond = load i1, i1 addrspace(4)* null |
| 34 | + %tmp = select i1 %cond, void (i8*, i32, i8*)* bitcast (void ()* @wobble to void (i8*, i32, i8*)*), void (i8*, i32, i8*)* bitcast (void ()* @snork to void (i8*, i32, i8*)*) |
32 | 35 | call void %tmp(i8* undef, i32 undef, i8* undef)
|
33 | 36 | ret void
|
34 | 37 | }
|
|
0 commit comments