1*9880d681SAndroid Build Coastguard Worker;RUN: llc < %s -march=amdgcn -mcpu=verde -verify-machineinstrs | FileCheck %s 2*9880d681SAndroid Build Coastguard Worker;RUN: llc < %s -march=amdgcn -mcpu=tonga -verify-machineinstrs | FileCheck %s 3*9880d681SAndroid Build Coastguard Worker 4*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample: 5*9880d681SAndroid Build Coastguard Worker;CHECK: s_wqm 6*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 7*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample() { 8*9880d681SAndroid Build Coastguard Workermain_body: 9*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 10*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 11*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 12*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 13*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 14*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 15*9880d681SAndroid Build Coastguard Worker ret void 16*9880d681SAndroid Build Coastguard Worker} 17*9880d681SAndroid Build Coastguard Worker 18*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_cl: 19*9880d681SAndroid Build Coastguard Worker;CHECK: s_wqm 20*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_cl {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 21*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_cl() { 22*9880d681SAndroid Build Coastguard Workermain_body: 23*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.cl.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 24*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 25*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 26*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 27*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 28*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 29*9880d681SAndroid Build Coastguard Worker ret void 30*9880d681SAndroid Build Coastguard Worker} 31*9880d681SAndroid Build Coastguard Worker 32*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_d: 33*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: s_wqm 34*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_d {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 35*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_d() { 36*9880d681SAndroid Build Coastguard Workermain_body: 37*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.d.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 38*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 39*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 40*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 41*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 42*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 43*9880d681SAndroid Build Coastguard Worker ret void 44*9880d681SAndroid Build Coastguard Worker} 45*9880d681SAndroid Build Coastguard Worker 46*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_d_cl: 47*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: s_wqm 48*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_d_cl {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 49*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_d_cl() { 50*9880d681SAndroid Build Coastguard Workermain_body: 51*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.d.cl.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 52*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 53*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 54*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 55*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 56*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 57*9880d681SAndroid Build Coastguard Worker ret void 58*9880d681SAndroid Build Coastguard Worker} 59*9880d681SAndroid Build Coastguard Worker 60*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_l: 61*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: s_wqm 62*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_l {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 63*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_l() { 64*9880d681SAndroid Build Coastguard Workermain_body: 65*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.l.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 66*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 67*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 68*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 69*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 70*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 71*9880d681SAndroid Build Coastguard Worker ret void 72*9880d681SAndroid Build Coastguard Worker} 73*9880d681SAndroid Build Coastguard Worker 74*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_b: 75*9880d681SAndroid Build Coastguard Worker;CHECK: s_wqm 76*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_b {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 77*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_b() { 78*9880d681SAndroid Build Coastguard Workermain_body: 79*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.b.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 80*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 81*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 82*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 83*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 84*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 85*9880d681SAndroid Build Coastguard Worker ret void 86*9880d681SAndroid Build Coastguard Worker} 87*9880d681SAndroid Build Coastguard Worker 88*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_b_cl: 89*9880d681SAndroid Build Coastguard Worker;CHECK: s_wqm 90*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_b_cl {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 91*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_b_cl() { 92*9880d681SAndroid Build Coastguard Workermain_body: 93*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.b.cl.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 94*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 95*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 96*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 97*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 98*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 99*9880d681SAndroid Build Coastguard Worker ret void 100*9880d681SAndroid Build Coastguard Worker} 101*9880d681SAndroid Build Coastguard Worker 102*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_lz: 103*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: s_wqm 104*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_lz {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 105*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_lz() { 106*9880d681SAndroid Build Coastguard Workermain_body: 107*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.lz.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 108*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 109*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 110*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 111*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 112*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 113*9880d681SAndroid Build Coastguard Worker ret void 114*9880d681SAndroid Build Coastguard Worker} 115*9880d681SAndroid Build Coastguard Worker 116*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_cd: 117*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: s_wqm 118*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_cd {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 119*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_cd() { 120*9880d681SAndroid Build Coastguard Workermain_body: 121*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.cd.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 122*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 123*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 124*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 125*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 126*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 127*9880d681SAndroid Build Coastguard Worker ret void 128*9880d681SAndroid Build Coastguard Worker} 129*9880d681SAndroid Build Coastguard Worker 130*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_cd_cl: 131*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: s_wqm 132*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_cd_cl {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 133*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_cd_cl() { 134*9880d681SAndroid Build Coastguard Workermain_body: 135*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.cd.cl.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 136*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 137*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 138*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 139*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 140*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 141*9880d681SAndroid Build Coastguard Worker ret void 142*9880d681SAndroid Build Coastguard Worker} 143*9880d681SAndroid Build Coastguard Worker 144*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_c: 145*9880d681SAndroid Build Coastguard Worker;CHECK: s_wqm 146*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_c {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 147*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_c() { 148*9880d681SAndroid Build Coastguard Workermain_body: 149*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.c.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 150*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 151*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 152*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 153*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 154*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 155*9880d681SAndroid Build Coastguard Worker ret void 156*9880d681SAndroid Build Coastguard Worker} 157*9880d681SAndroid Build Coastguard Worker 158*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_c_cl: 159*9880d681SAndroid Build Coastguard Worker;CHECK: s_wqm 160*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_c_cl {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 161*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_c_cl() { 162*9880d681SAndroid Build Coastguard Workermain_body: 163*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.c.cl.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 164*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 165*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 166*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 167*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 168*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 169*9880d681SAndroid Build Coastguard Worker ret void 170*9880d681SAndroid Build Coastguard Worker} 171*9880d681SAndroid Build Coastguard Worker 172*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_c_d: 173*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: s_wqm 174*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_c_d {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 175*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_c_d() { 176*9880d681SAndroid Build Coastguard Workermain_body: 177*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.c.d.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 178*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 179*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 180*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 181*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 182*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 183*9880d681SAndroid Build Coastguard Worker ret void 184*9880d681SAndroid Build Coastguard Worker} 185*9880d681SAndroid Build Coastguard Worker 186*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_c_d_cl: 187*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: s_wqm 188*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_c_d_cl {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 189*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_c_d_cl() { 190*9880d681SAndroid Build Coastguard Workermain_body: 191*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.c.d.cl.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 192*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 193*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 194*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 195*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 196*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 197*9880d681SAndroid Build Coastguard Worker ret void 198*9880d681SAndroid Build Coastguard Worker} 199*9880d681SAndroid Build Coastguard Worker 200*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_c_l: 201*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: s_wqm 202*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_c_l {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 203*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_c_l() { 204*9880d681SAndroid Build Coastguard Workermain_body: 205*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.c.l.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 206*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 207*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 208*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 209*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 210*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 211*9880d681SAndroid Build Coastguard Worker ret void 212*9880d681SAndroid Build Coastguard Worker} 213*9880d681SAndroid Build Coastguard Worker 214*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_c_b: 215*9880d681SAndroid Build Coastguard Worker;CHECK: s_wqm 216*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_c_b {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 217*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_c_b() { 218*9880d681SAndroid Build Coastguard Workermain_body: 219*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.c.b.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 220*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 221*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 222*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 223*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 224*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 225*9880d681SAndroid Build Coastguard Worker ret void 226*9880d681SAndroid Build Coastguard Worker} 227*9880d681SAndroid Build Coastguard Worker 228*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_c_b_cl: 229*9880d681SAndroid Build Coastguard Worker;CHECK: s_wqm 230*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_c_b_cl {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 231*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_c_b_cl() { 232*9880d681SAndroid Build Coastguard Workermain_body: 233*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.c.b.cl.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 234*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 235*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 236*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 237*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 238*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 239*9880d681SAndroid Build Coastguard Worker ret void 240*9880d681SAndroid Build Coastguard Worker} 241*9880d681SAndroid Build Coastguard Worker 242*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_c_lz: 243*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: s_wqm 244*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_c_lz {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 245*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_c_lz() { 246*9880d681SAndroid Build Coastguard Workermain_body: 247*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.c.lz.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 248*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 249*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 250*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 251*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 252*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 253*9880d681SAndroid Build Coastguard Worker ret void 254*9880d681SAndroid Build Coastguard Worker} 255*9880d681SAndroid Build Coastguard Worker 256*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_c_cd: 257*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: s_wqm 258*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_c_cd {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 259*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_c_cd() { 260*9880d681SAndroid Build Coastguard Workermain_body: 261*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.c.cd.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 262*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 263*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 264*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 265*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 266*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 267*9880d681SAndroid Build Coastguard Worker ret void 268*9880d681SAndroid Build Coastguard Worker} 269*9880d681SAndroid Build Coastguard Worker 270*9880d681SAndroid Build Coastguard Worker;CHECK-LABEL: {{^}}sample_c_cd_cl: 271*9880d681SAndroid Build Coastguard Worker;CHECK-NOT: s_wqm 272*9880d681SAndroid Build Coastguard Worker;CHECK: image_sample_c_cd_cl {{v\[[0-9]+:[0-9]+\]}}, {{v\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}}, {{s\[[0-9]+:[0-9]+\]}} dmask:0xf 273*9880d681SAndroid Build Coastguard Workerdefine amdgpu_ps void @sample_c_cd_cl() { 274*9880d681SAndroid Build Coastguard Workermain_body: 275*9880d681SAndroid Build Coastguard Worker %r = call <4 x float> @llvm.SI.image.sample.c.cd.cl.v4i32(<4 x i32> undef, <8 x i32> undef, <4 x i32> undef, i32 15, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0, i32 0) 276*9880d681SAndroid Build Coastguard Worker %r0 = extractelement <4 x float> %r, i32 0 277*9880d681SAndroid Build Coastguard Worker %r1 = extractelement <4 x float> %r, i32 1 278*9880d681SAndroid Build Coastguard Worker %r2 = extractelement <4 x float> %r, i32 2 279*9880d681SAndroid Build Coastguard Worker %r3 = extractelement <4 x float> %r, i32 3 280*9880d681SAndroid Build Coastguard Worker call void @llvm.SI.export(i32 15, i32 1, i32 1, i32 0, i32 1, float %r0, float %r1, float %r2, float %r3) 281*9880d681SAndroid Build Coastguard Worker ret void 282*9880d681SAndroid Build Coastguard Worker} 283*9880d681SAndroid Build Coastguard Worker 284*9880d681SAndroid Build Coastguard Worker 285*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 286*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.cl.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 287*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.d.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 288*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.d.cl.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 289*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.l.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 290*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.b.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 291*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.b.cl.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 292*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.lz.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 293*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.cd.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 294*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.cd.cl.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 295*9880d681SAndroid Build Coastguard Worker 296*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.c.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 297*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.c.cl.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 298*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.c.d.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 299*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.c.d.cl.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 300*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.c.l.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 301*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.c.b.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 302*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.c.b.cl.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 303*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.c.lz.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 304*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.c.cd.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 305*9880d681SAndroid Build Coastguard Workerdeclare <4 x float> @llvm.SI.image.sample.c.cd.cl.v4i32(<4 x i32>, <8 x i32>, <4 x i32>, i32, i32, i32, i32, i32, i32, i32, i32) #0 306*9880d681SAndroid Build Coastguard Worker 307*9880d681SAndroid Build Coastguard Workerdeclare void @llvm.SI.export(i32, i32, i32, i32, i32, float, float, float, float) 308*9880d681SAndroid Build Coastguard Worker 309*9880d681SAndroid Build Coastguard Workerattributes #0 = { nounwind readnone } 310