@@ -40,8 +40,8 @@ define void @global_8xi32(ptr addrspace(1) %a, ptr addrspace(1) %b) {
4040; SM100-NEXT: ld.param.b64 %rd2, [global_8xi32_param_1];
4141; SM100-NEXT: st.global.v8.b32 [%rd2], {%r1, _, %r3, _, _, _, _, %r8};
4242; SM100-NEXT: ret;
43- %a.load = tail call <8 x i32 > @llvm.masked.load.v8i32.p1 (ptr addrspace (1 ) %a , i32 32 , <8 x i1 > <i1 true , i1 false , i1 true , i1 false , i1 false , i1 false , i1 false , i1 true >, <8 x i32 > poison)
44- tail call void @llvm.masked.store.v8i32.p1 (<8 x i32 > %a.load , ptr addrspace (1 ) %b , i32 32 , <8 x i1 > <i1 true , i1 false , i1 true , i1 false , i1 false , i1 false , i1 false , i1 true >)
43+ %a.load = tail call <8 x i32 > @llvm.masked.load.v8i32.p1 (ptr addrspace (1 ) align 32 %a , <8 x i1 > <i1 true , i1 false , i1 true , i1 false , i1 false , i1 false , i1 false , i1 true >, <8 x i32 > poison)
44+ tail call void @llvm.masked.store.v8i32.p1 (<8 x i32 > %a.load , ptr addrspace (1 ) align 32 %b , <8 x i1 > <i1 true , i1 false , i1 true , i1 false , i1 false , i1 false , i1 false , i1 true >)
4545 ret void
4646}
4747
@@ -93,8 +93,8 @@ define void @global_16xi16(ptr addrspace(1) %a, ptr addrspace(1) %b) {
9393; SM100-NEXT: st.global.b16 [%rd2+28], %rs1;
9494; SM100-NEXT: st.global.b16 [%rd2+30], %rs2;
9595; SM100-NEXT: ret;
96- %a.load = tail call <16 x i16 > @llvm.masked.load.v16i16.p1 (ptr addrspace (1 ) %a , i32 32 , <16 x i1 > <i1 true , i1 true , i1 false , i1 false , i1 true , i1 true , i1 false , i1 false , i1 false , i1 false , i1 false , i1 false , i1 false , i1 false , i1 true , i1 true >, <16 x i16 > poison)
97- tail call void @llvm.masked.store.v16i16.p1 (<16 x i16 > %a.load , ptr addrspace (1 ) %b , i32 32 , <16 x i1 > <i1 true , i1 true , i1 false , i1 false , i1 true , i1 true , i1 false , i1 false , i1 false , i1 false , i1 false , i1 false , i1 false , i1 false , i1 true , i1 true >)
96+ %a.load = tail call <16 x i16 > @llvm.masked.load.v16i16.p1 (ptr addrspace (1 ) align 32 %a , <16 x i1 > <i1 true , i1 true , i1 false , i1 false , i1 true , i1 true , i1 false , i1 false , i1 false , i1 false , i1 false , i1 false , i1 false , i1 false , i1 true , i1 true >, <16 x i16 > poison)
97+ tail call void @llvm.masked.store.v16i16.p1 (<16 x i16 > %a.load , ptr addrspace (1 ) align 32 %b , <16 x i1 > <i1 true , i1 true , i1 false , i1 false , i1 true , i1 true , i1 false , i1 false , i1 false , i1 false , i1 false , i1 false , i1 false , i1 false , i1 true , i1 true >)
9898 ret void
9999}
100100
@@ -114,8 +114,8 @@ define void @global_8xi32_no_align(ptr addrspace(1) %a, ptr addrspace(1) %b) {
114114; CHECK-NEXT: st.global.b32 [%rd2+8], %r2;
115115; CHECK-NEXT: st.global.b32 [%rd2+28], %r3;
116116; CHECK-NEXT: ret;
117- %a.load = tail call <8 x i32 > @llvm.masked.load.v8i32.p1 (ptr addrspace (1 ) %a , i32 16 , <8 x i1 > <i1 true , i1 false , i1 true , i1 false , i1 false , i1 false , i1 false , i1 true >, <8 x i32 > poison)
118- tail call void @llvm.masked.store.v8i32.p1 (<8 x i32 > %a.load , ptr addrspace (1 ) %b , i32 16 , <8 x i1 > <i1 true , i1 false , i1 true , i1 false , i1 false , i1 false , i1 false , i1 true >)
117+ %a.load = tail call <8 x i32 > @llvm.masked.load.v8i32.p1 (ptr addrspace (1 ) align 16 %a , <8 x i1 > <i1 true , i1 false , i1 true , i1 false , i1 false , i1 false , i1 false , i1 true >, <8 x i32 > poison)
118+ tail call void @llvm.masked.store.v8i32.p1 (<8 x i32 > %a.load , ptr addrspace (1 ) align 16 %b , <8 x i1 > <i1 true , i1 false , i1 true , i1 false , i1 false , i1 false , i1 false , i1 true >)
119119 ret void
120120}
121121
@@ -150,8 +150,8 @@ define void @global_8xi32_invariant(ptr addrspace(1) %a, ptr addrspace(1) %b) {
150150; SM100-NEXT: ld.param.b64 %rd2, [global_8xi32_invariant_param_1];
151151; SM100-NEXT: st.global.v8.b32 [%rd2], {%r1, _, %r3, _, _, _, _, %r8};
152152; SM100-NEXT: ret;
153- %a.load = tail call <8 x i32 > @llvm.masked.load.v8i32.p1 (ptr addrspace (1 ) %a , i32 32 , <8 x i1 > <i1 true , i1 false , i1 true , i1 false , i1 false , i1 false , i1 false , i1 true >, <8 x i32 > poison), !invariant.load !0
154- tail call void @llvm.masked.store.v8i32.p1 (<8 x i32 > %a.load , ptr addrspace (1 ) %b , i32 32 , <8 x i1 > <i1 true , i1 false , i1 true , i1 false , i1 false , i1 false , i1 false , i1 true >)
153+ %a.load = tail call <8 x i32 > @llvm.masked.load.v8i32.p1 (ptr addrspace (1 ) align 32 %a , <8 x i1 > <i1 true , i1 false , i1 true , i1 false , i1 false , i1 false , i1 false , i1 true >, <8 x i32 > poison), !invariant.load !0
154+ tail call void @llvm.masked.store.v8i32.p1 (<8 x i32 > %a.load , ptr addrspace (1 ) align 32 %b , <8 x i1 > <i1 true , i1 false , i1 true , i1 false , i1 false , i1 false , i1 false , i1 true >)
155155 ret void
156156}
157157
@@ -170,8 +170,8 @@ define void @global_2xi16(ptr addrspace(1) %a, ptr addrspace(1) %b) {
170170; CHECK-NEXT: mov.b32 {%rs1, _}, %r1;
171171; CHECK-NEXT: st.global.b16 [%rd2], %rs1;
172172; CHECK-NEXT: ret;
173- %a.load = tail call <2 x i16 > @llvm.masked.load.v2i16.p1 (ptr addrspace (1 ) %a , i32 4 , <2 x i1 > <i1 true , i1 false >, <2 x i16 > poison)
174- tail call void @llvm.masked.store.v2i16.p1 (<2 x i16 > %a.load , ptr addrspace (1 ) %b , i32 4 , <2 x i1 > <i1 true , i1 false >)
173+ %a.load = tail call <2 x i16 > @llvm.masked.load.v2i16.p1 (ptr addrspace (1 ) align 4 %a , <2 x i1 > <i1 true , i1 false >, <2 x i16 > poison)
174+ tail call void @llvm.masked.store.v2i16.p1 (<2 x i16 > %a.load , ptr addrspace (1 ) align 4 %b , <2 x i1 > <i1 true , i1 false >)
175175 ret void
176176}
177177
@@ -190,8 +190,8 @@ define void @global_2xi16_invariant(ptr addrspace(1) %a, ptr addrspace(1) %b) {
190190; CHECK-NEXT: mov.b32 {%rs1, _}, %r1;
191191; CHECK-NEXT: st.global.b16 [%rd2], %rs1;
192192; CHECK-NEXT: ret;
193- %a.load = tail call <2 x i16 > @llvm.masked.load.v2i16.p1 (ptr addrspace (1 ) %a , i32 4 , <2 x i1 > <i1 true , i1 false >, <2 x i16 > poison), !invariant.load !0
194- tail call void @llvm.masked.store.v2i16.p1 (<2 x i16 > %a.load , ptr addrspace (1 ) %b , i32 4 , <2 x i1 > <i1 true , i1 false >)
193+ %a.load = tail call <2 x i16 > @llvm.masked.load.v2i16.p1 (ptr addrspace (1 ) align 4 %a , <2 x i1 > <i1 true , i1 false >, <2 x i16 > poison), !invariant.load !0
194+ tail call void @llvm.masked.store.v2i16.p1 (<2 x i16 > %a.load , ptr addrspace (1 ) align 4 %b , <2 x i1 > <i1 true , i1 false >)
195195 ret void
196196}
197197
@@ -207,8 +207,8 @@ define void @global_2xi16_no_align(ptr addrspace(1) %a, ptr addrspace(1) %b) {
207207; CHECK-NEXT: ld.param.b64 %rd2, [global_2xi16_no_align_param_1];
208208; CHECK-NEXT: st.global.b16 [%rd2], %rs1;
209209; CHECK-NEXT: ret;
210- %a.load = tail call <2 x i16 > @llvm.masked.load.v2i16.p1 (ptr addrspace (1 ) %a , i32 2 , <2 x i1 > <i1 true , i1 false >, <2 x i16 > poison)
211- tail call void @llvm.masked.store.v2i16.p1 (<2 x i16 > %a.load , ptr addrspace (1 ) %b , i32 4 , <2 x i1 > <i1 true , i1 false >)
210+ %a.load = tail call <2 x i16 > @llvm.masked.load.v2i16.p1 (ptr addrspace (1 ) align 2 %a , <2 x i1 > <i1 true , i1 false >, <2 x i16 > poison)
211+ tail call void @llvm.masked.store.v2i16.p1 (<2 x i16 > %a.load , ptr addrspace (1 ) align 4 %b , <2 x i1 > <i1 true , i1 false >)
212212 ret void
213213}
214214
@@ -227,8 +227,8 @@ define void @global_4xi8(ptr addrspace(1) %a, ptr addrspace(1) %b) {
227227; CHECK-NEXT: prmt.b32 %r2, %r1, 0, 0x7772U;
228228; CHECK-NEXT: st.global.b8 [%rd2+2], %r2;
229229; CHECK-NEXT: ret;
230- %a.load = tail call <4 x i8 > @llvm.masked.load.v4i8.p1 (ptr addrspace (1 ) %a , i32 4 , <4 x i1 > <i1 true , i1 false , i1 true , i1 false >, <4 x i8 > poison)
231- tail call void @llvm.masked.store.v4i8.p1 (<4 x i8 > %a.load , ptr addrspace (1 ) %b , i32 4 , <4 x i1 > <i1 true , i1 false , i1 true , i1 false >)
230+ %a.load = tail call <4 x i8 > @llvm.masked.load.v4i8.p1 (ptr addrspace (1 ) align 4 %a , <4 x i1 > <i1 true , i1 false , i1 true , i1 false >, <4 x i8 > poison)
231+ tail call void @llvm.masked.store.v4i8.p1 (<4 x i8 > %a.load , ptr addrspace (1 ) align 4 %b , <4 x i1 > <i1 true , i1 false , i1 true , i1 false >)
232232 ret void
233233}
234234
@@ -247,8 +247,8 @@ define void @global_4xi8_invariant(ptr addrspace(1) %a, ptr addrspace(1) %b) {
247247; CHECK-NEXT: prmt.b32 %r2, %r1, 0, 0x7772U;
248248; CHECK-NEXT: st.global.b8 [%rd2+2], %r2;
249249; CHECK-NEXT: ret;
250- %a.load = tail call <4 x i8 > @llvm.masked.load.v4i8.p1 (ptr addrspace (1 ) %a , i32 4 , <4 x i1 > <i1 true , i1 false , i1 true , i1 false >, <4 x i8 > poison), !invariant.load !0
251- tail call void @llvm.masked.store.v4i8.p1 (<4 x i8 > %a.load , ptr addrspace (1 ) %b , i32 4 , <4 x i1 > <i1 true , i1 false , i1 true , i1 false >)
250+ %a.load = tail call <4 x i8 > @llvm.masked.load.v4i8.p1 (ptr addrspace (1 ) align 4 %a , <4 x i1 > <i1 true , i1 false , i1 true , i1 false >, <4 x i8 > poison), !invariant.load !0
251+ tail call void @llvm.masked.store.v4i8.p1 (<4 x i8 > %a.load , ptr addrspace (1 ) align 4 %b , <4 x i1 > <i1 true , i1 false , i1 true , i1 false >)
252252 ret void
253253}
254254
@@ -266,8 +266,8 @@ define void @global_4xi8_no_align(ptr addrspace(1) %a, ptr addrspace(1) %b) {
266266; CHECK-NEXT: st.global.b8 [%rd2], %rs1;
267267; CHECK-NEXT: st.global.b8 [%rd2+2], %rs2;
268268; CHECK-NEXT: ret;
269- %a.load = tail call <4 x i8 > @llvm.masked.load.v4i8.p1 (ptr addrspace (1 ) %a , i32 2 , <4 x i1 > <i1 true , i1 false , i1 true , i1 false >, <4 x i8 > poison)
270- tail call void @llvm.masked.store.v4i8.p1 (<4 x i8 > %a.load , ptr addrspace (1 ) %b , i32 4 , <4 x i1 > <i1 true , i1 false , i1 true , i1 false >)
269+ %a.load = tail call <4 x i8 > @llvm.masked.load.v4i8.p1 (ptr addrspace (1 ) align 2 %a , <4 x i1 > <i1 true , i1 false , i1 true , i1 false >, <4 x i8 > poison)
270+ tail call void @llvm.masked.store.v4i8.p1 (<4 x i8 > %a.load , ptr addrspace (1 ) align 4 %b , <4 x i1 > <i1 true , i1 false , i1 true , i1 false >)
271271 ret void
272272}
273273
@@ -299,8 +299,8 @@ define void @global_2xf32(ptr addrspace(1) %a, ptr addrspace(1) %b) {
299299; SM100-NEXT: mov.b64 {%r1, _}, %rd2;
300300; SM100-NEXT: st.global.b32 [%rd3], %r1;
301301; SM100-NEXT: ret;
302- %a.load = tail call <2 x float > @llvm.masked.load.v2f32.p1 (ptr addrspace (1 ) %a , i32 8 , <2 x i1 > <i1 true , i1 false >, <2 x float > poison)
303- tail call void @llvm.masked.store.v2f32.p1 (<2 x float > %a.load , ptr addrspace (1 ) %b , i32 8 , <2 x i1 > <i1 true , i1 false >)
302+ %a.load = tail call <2 x float > @llvm.masked.load.v2f32.p1 (ptr addrspace (1 ) align 8 %a , <2 x i1 > <i1 true , i1 false >, <2 x float > poison)
303+ tail call void @llvm.masked.store.v2f32.p1 (<2 x float > %a.load , ptr addrspace (1 ) align 8 %b , <2 x i1 > <i1 true , i1 false >)
304304 ret void
305305}
306306
@@ -331,8 +331,8 @@ define void @global_2xf32_invariant(ptr addrspace(1) %a, ptr addrspace(1) %b) {
331331; SM100-NEXT: mov.b64 {%r1, _}, %rd2;
332332; SM100-NEXT: st.global.b32 [%rd3], %r1;
333333; SM100-NEXT: ret;
334- %a.load = tail call <2 x float > @llvm.masked.load.v2f32.p1 (ptr addrspace (1 ) %a , i32 8 , <2 x i1 > <i1 true , i1 false >, <2 x float > poison), !invariant.load !0
335- tail call void @llvm.masked.store.v2f32.p1 (<2 x float > %a.load , ptr addrspace (1 ) %b , i32 8 , <2 x i1 > <i1 true , i1 false >)
334+ %a.load = tail call <2 x float > @llvm.masked.load.v2f32.p1 (ptr addrspace (1 ) align 8 %a , <2 x i1 > <i1 true , i1 false >, <2 x float > poison), !invariant.load !0
335+ tail call void @llvm.masked.store.v2f32.p1 (<2 x float > %a.load , ptr addrspace (1 ) align 8 %b , <2 x i1 > <i1 true , i1 false >)
336336 ret void
337337}
338338
@@ -348,19 +348,19 @@ define void @global_2xf32_no_align(ptr addrspace(1) %a, ptr addrspace(1) %b) {
348348; CHECK-NEXT: ld.param.b64 %rd2, [global_2xf32_no_align_param_1];
349349; CHECK-NEXT: st.global.b32 [%rd2], %r1;
350350; CHECK-NEXT: ret;
351- %a.load = tail call <2 x float > @llvm.masked.load.v2f32.p1 (ptr addrspace (1 ) %a , i32 4 , <2 x i1 > <i1 true , i1 false >, <2 x float > poison)
352- tail call void @llvm.masked.store.v2f32.p1 (<2 x float > %a.load , ptr addrspace (1 ) %b , i32 8 , <2 x i1 > <i1 true , i1 false >)
351+ %a.load = tail call <2 x float > @llvm.masked.load.v2f32.p1 (ptr addrspace (1 ) align 4 %a , <2 x i1 > <i1 true , i1 false >, <2 x float > poison)
352+ tail call void @llvm.masked.store.v2f32.p1 (<2 x float > %a.load , ptr addrspace (1 ) align 8 %b , <2 x i1 > <i1 true , i1 false >)
353353 ret void
354354}
355355
356- declare <8 x i32 > @llvm.masked.load.v8i32.p1 (ptr addrspace (1 ), i32 , <8 x i1 >, <8 x i32 >)
357- declare void @llvm.masked.store.v8i32.p1 (<8 x i32 >, ptr addrspace (1 ), i32 , <8 x i1 >)
358- declare <16 x i16 > @llvm.masked.load.v16i16.p1 (ptr addrspace (1 ), i32 , <16 x i1 >, <16 x i16 >)
359- declare void @llvm.masked.store.v16i16.p1 (<16 x i16 >, ptr addrspace (1 ), i32 , <16 x i1 >)
360- declare <2 x i16 > @llvm.masked.load.v2i16.p1 (ptr addrspace (1 ), i32 , <2 x i1 >, <2 x i16 >)
361- declare void @llvm.masked.store.v2i16.p1 (<2 x i16 >, ptr addrspace (1 ), i32 , <2 x i1 >)
362- declare <4 x i8 > @llvm.masked.load.v4i8.p1 (ptr addrspace (1 ), i32 , <4 x i1 >, <4 x i8 >)
363- declare void @llvm.masked.store.v4i8.p1 (<4 x i8 >, ptr addrspace (1 ), i32 , <4 x i1 >)
364- declare <2 x float > @llvm.masked.load.v2f32.p1 (ptr addrspace (1 ), i32 , <2 x i1 >, <2 x float >)
365- declare void @llvm.masked.store.v2f32.p1 (<2 x float >, ptr addrspace (1 ), i32 , <2 x i1 >)
356+ declare <8 x i32 > @llvm.masked.load.v8i32.p1 (ptr addrspace (1 ), <8 x i1 >, <8 x i32 >)
357+ declare void @llvm.masked.store.v8i32.p1 (<8 x i32 >, ptr addrspace (1 ), <8 x i1 >)
358+ declare <16 x i16 > @llvm.masked.load.v16i16.p1 (ptr addrspace (1 ), <16 x i1 >, <16 x i16 >)
359+ declare void @llvm.masked.store.v16i16.p1 (<16 x i16 >, ptr addrspace (1 ), <16 x i1 >)
360+ declare <2 x i16 > @llvm.masked.load.v2i16.p1 (ptr addrspace (1 ), <2 x i1 >, <2 x i16 >)
361+ declare void @llvm.masked.store.v2i16.p1 (<2 x i16 >, ptr addrspace (1 ), <2 x i1 >)
362+ declare <4 x i8 > @llvm.masked.load.v4i8.p1 (ptr addrspace (1 ), <4 x i1 >, <4 x i8 >)
363+ declare void @llvm.masked.store.v4i8.p1 (<4 x i8 >, ptr addrspace (1 ), <4 x i1 >)
364+ declare <2 x float > @llvm.masked.load.v2f32.p1 (ptr addrspace (1 ), <2 x i1 >, <2 x float >)
365+ declare void @llvm.masked.store.v2f32.p1 (<2 x float >, ptr addrspace (1 ), <2 x i1 >)
366366!0 = !{}
0 commit comments