@@ -332,7 +332,7 @@ define {<4 x i32>, <4 x i32>, <4 x i32>} @vpload_factor3_poison_shufflemask(ptr
332332 ret {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res2
333333}
334334
335- define {<4 x i32 >, <4 x i32 >, < 4 x i32 > } @vpload_factor3_skip_fields (ptr %ptr ) {
335+ define {<4 x i32 >, <4 x i32 >} @vpload_factor3_skip_fields (ptr %ptr ) {
336336 ; mask = 1111, skip the last field.
337337; CHECK-LABEL: vpload_factor3_skip_fields:
338338; CHECK: # %bb.0:
@@ -344,13 +344,12 @@ define {<4 x i32>, <4 x i32>, <4 x i32>} @vpload_factor3_skip_fields(ptr %ptr) {
344344 %v0 = shufflevector <12 x i32 > %interleaved.vec , <12 x i32 > poison, <4 x i32 > <i32 0 , i32 3 , i32 6 , i32 9 >
345345 %v1 = shufflevector <12 x i32 > %interleaved.vec , <12 x i32 > poison, <4 x i32 > <i32 1 , i32 4 , i32 poison, i32 10 >
346346 %v2 = shufflevector <12 x i32 > %interleaved.vec , <12 x i32 > poison, <4 x i32 > <i32 2 , i32 5 , i32 8 , i32 11 >
347- %res0 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >} undef , <4 x i32 > %v0 , 0
348- %res1 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res0 , <4 x i32 > %v1 , 1
349- %res2 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res1 , <4 x i32 > %v2 , 2
350- ret {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res2
347+ %res0 = insertvalue {<4 x i32 >, <4 x i32 >} undef , <4 x i32 > %v0 , 0
348+ %res1 = insertvalue {<4 x i32 >, <4 x i32 >} %res0 , <4 x i32 > %v1 , 1
349+ ret {<4 x i32 >, <4 x i32 >} %res1
351350}
352351
353- define {<4 x i32 >, <4 x i32 >, < 4 x i32 > } @vpload_factor3_mask_skip_fields (ptr %ptr ) {
352+ define {<4 x i32 >, <4 x i32 >} @vpload_factor3_mask_skip_fields (ptr %ptr ) {
354353 ; mask = 0101, skip the last field.
355354; CHECK-LABEL: vpload_factor3_mask_skip_fields:
356355; CHECK: # %bb.0:
@@ -363,10 +362,9 @@ define {<4 x i32>, <4 x i32>, <4 x i32>} @vpload_factor3_mask_skip_fields(ptr %p
363362 %v0 = shufflevector <12 x i32 > %interleaved.vec , <12 x i32 > poison, <4 x i32 > <i32 0 , i32 3 , i32 6 , i32 9 >
364363 %v1 = shufflevector <12 x i32 > %interleaved.vec , <12 x i32 > poison, <4 x i32 > <i32 1 , i32 4 , i32 poison, i32 10 >
365364 %v2 = shufflevector <12 x i32 > %interleaved.vec , <12 x i32 > poison, <4 x i32 > <i32 2 , i32 5 , i32 8 , i32 11 >
366- %res0 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >} undef , <4 x i32 > %v0 , 0
367- %res1 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res0 , <4 x i32 > %v1 , 1
368- %res2 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res1 , <4 x i32 > %v2 , 2
369- ret {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res2
365+ %res0 = insertvalue {<4 x i32 >, <4 x i32 >} undef , <4 x i32 > %v0 , 0
366+ %res1 = insertvalue {<4 x i32 >, <4 x i32 >} %res0 , <4 x i32 > %v1 , 1
367+ ret {<4 x i32 >, <4 x i32 >} %res1
370368}
371369
372370define {<4 x i32 >, <4 x i32 >, <4 x i32 >, <4 x i32 >} @vpload_factor4 (ptr %ptr ) {
@@ -2150,7 +2148,7 @@ define {<4 x i32>, <4 x i32>, <4 x i32>} @maskedload_factor3_mask(ptr %ptr) {
21502148 ret {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res2
21512149}
21522150
2153- define {<4 x i32 >, <4 x i32 >, < 4 x i32 > } @maskedload_factor3_skip_field (ptr %ptr ) {
2151+ define {<4 x i32 >, <4 x i32 >} @maskedload_factor3_skip_field (ptr %ptr ) {
21542152; CHECK-LABEL: maskedload_factor3_skip_field:
21552153; CHECK: # %bb.0:
21562154; CHECK-NEXT: li a1, 12
@@ -2162,13 +2160,12 @@ define {<4 x i32>, <4 x i32>, <4 x i32>} @maskedload_factor3_skip_field(ptr %ptr
21622160 %v0 = shufflevector <12 x i32 > %interleaved.vec , <12 x i32 > poison, <4 x i32 > <i32 0 , i32 3 , i32 6 , i32 9 >
21632161 %v1 = shufflevector <12 x i32 > %interleaved.vec , <12 x i32 > poison, <4 x i32 > <i32 1 , i32 4 , i32 7 , i32 10 >
21642162 %v2 = shufflevector <12 x i32 > %interleaved.vec , <12 x i32 > poison, <4 x i32 > <i32 2 , i32 5 , i32 8 , i32 11 >
2165- %res0 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >} undef , <4 x i32 > %v0 , 0
2166- %res1 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res0 , <4 x i32 > %v1 , 1
2167- %res2 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res1 , <4 x i32 > %v2 , 2
2168- ret {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res2
2163+ %res0 = insertvalue {<4 x i32 >, <4 x i32 >} undef , <4 x i32 > %v0 , 0
2164+ %res1 = insertvalue {<4 x i32 >, <4 x i32 >} %res0 , <4 x i32 > %v1 , 1
2165+ ret {<4 x i32 >, <4 x i32 >} %res1
21692166}
21702167
2171- define {<4 x i32 >, <4 x i32 >, < 4 x i32 > } @maskedload_factor3_mask_skip_field (ptr %ptr ) {
2168+ define {<4 x i32 >, <4 x i32 >} @maskedload_factor3_mask_skip_field (ptr %ptr ) {
21722169; CHECK-LABEL: maskedload_factor3_mask_skip_field:
21732170; CHECK: # %bb.0:
21742171; CHECK-NEXT: vsetivli zero, 4, e32, m1, ta, ma
@@ -2181,10 +2178,9 @@ define {<4 x i32>, <4 x i32>, <4 x i32>} @maskedload_factor3_mask_skip_field(ptr
21812178 %v0 = shufflevector <12 x i32 > %interleaved.vec , <12 x i32 > poison, <4 x i32 > <i32 0 , i32 3 , i32 6 , i32 9 >
21822179 %v1 = shufflevector <12 x i32 > %interleaved.vec , <12 x i32 > poison, <4 x i32 > <i32 1 , i32 4 , i32 7 , i32 10 >
21832180 %v2 = shufflevector <12 x i32 > %interleaved.vec , <12 x i32 > poison, <4 x i32 > <i32 2 , i32 5 , i32 8 , i32 11 >
2184- %res0 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >} undef , <4 x i32 > %v0 , 0
2185- %res1 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res0 , <4 x i32 > %v1 , 1
2186- %res2 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res1 , <4 x i32 > %v2 , 2
2187- ret {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res2
2181+ %res0 = insertvalue {<4 x i32 >, <4 x i32 >} undef , <4 x i32 > %v0 , 0
2182+ %res1 = insertvalue {<4 x i32 >, <4 x i32 >} %res0 , <4 x i32 > %v1 , 1
2183+ ret {<4 x i32 >, <4 x i32 >} %res1
21882184}
21892185
21902186; We can only skip the last field for now.
@@ -2269,7 +2265,7 @@ define {<4 x i32>, <4 x i32>, <4 x i32>} @maskedload_factor3_invalid_skip_field(
22692265 ret {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res2
22702266}
22712267
2272- define {<4 x i32 >, <4 x i32 >, <4 x i32 >, < 4 x i32 >, < 4 x i32 > } @maskedload_factor5_skip_fields (ptr %ptr ) {
2268+ define {<4 x i32 >, <4 x i32 >, <4 x i32 >} @maskedload_factor5_skip_fields (ptr %ptr ) {
22732269 ; mask = 1111, skip the last two fields.
22742270; CHECK-LABEL: maskedload_factor5_skip_fields:
22752271; CHECK: # %bb.0:
@@ -2283,11 +2279,9 @@ define {<4 x i32>, <4 x i32>, <4 x i32>, <4 x i32>, <4 x i32>} @maskedload_facto
22832279 %v2 = shufflevector <20 x i32 > %interleaved.vec , <20 x i32 > poison, <4 x i32 > <i32 2 , i32 7 , i32 12 , i32 17 >
22842280 %v3 = shufflevector <20 x i32 > %interleaved.vec , <20 x i32 > poison, <4 x i32 > <i32 3 , i32 8 , i32 13 , i32 18 >
22852281 %v4 = shufflevector <20 x i32 > %interleaved.vec , <20 x i32 > poison, <4 x i32 > <i32 4 , i32 9 , i32 14 , i32 19 >
2286- %res0 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >, <4 x i32 >, <4 x i32 >} undef , <4 x i32 > %v0 , 0
2287- %res1 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >, <4 x i32 >, <4 x i32 >} %res0 , <4 x i32 > %v1 , 1
2288- %res2 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >, <4 x i32 >, <4 x i32 >} %res1 , <4 x i32 > %v2 , 2
2289- %res3 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >, <4 x i32 >, <4 x i32 >} %res2 , <4 x i32 > %v3 , 3
2290- %res4 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >, <4 x i32 >, <4 x i32 >} %res3 , <4 x i32 > %v4 , 4
2291- ret {<4 x i32 >, <4 x i32 >, <4 x i32 >, <4 x i32 >, <4 x i32 >} %res4
2282+ %res0 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >} undef , <4 x i32 > %v0 , 0
2283+ %res1 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res0 , <4 x i32 > %v1 , 1
2284+ %res2 = insertvalue {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res1 , <4 x i32 > %v2 , 2
2285+ ret {<4 x i32 >, <4 x i32 >, <4 x i32 >} %res2
22922286}
22932287
0 commit comments