@@ -34,19 +34,21 @@ define <2 x i64> @scalarize_v2i64_ones_mask(i64* %p, <2 x i64> %passthru) {
3434; CHECK-LABEL: @scalarize_v2i64_ones_mask(
3535; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i64, i64* [[P:%.*]], i32 0
3636; CHECK-NEXT: [[LOAD0:%.*]] = load i64, i64* [[TMP1]], align 1
37- ; CHECK-NEXT: [[RES0:%.*]] = insertelement <2 x i64> [[PASSTHRU:%.*]] , i64 [[LOAD0]], i64 0
37+ ; CHECK-NEXT: [[RES0:%.*]] = insertelement <2 x i64> undef , i64 [[LOAD0]], i64 0
3838; CHECK-NEXT: [[TMP2:%.*]] = getelementptr inbounds i64, i64* [[P]], i32 1
3939; CHECK-NEXT: [[LOAD1:%.*]] = load i64, i64* [[TMP2]], align 1
4040; CHECK-NEXT: [[RES1:%.*]] = insertelement <2 x i64> [[RES0]], i64 [[LOAD1]], i64 1
41- ; CHECK-NEXT: ret <2 x i64> [[RES1]]
41+ ; CHECK-NEXT: [[TMP3:%.*]] = shufflevector <2 x i64> [[RES1]], <2 x i64> [[PASSTHRU:%.*]], <2 x i32> <i32 0, i32 1>
42+ ; CHECK-NEXT: ret <2 x i64> [[TMP3]]
4243;
4344 %ret = call <2 x i64 > @llvm.masked.expandload.v2i64.p0v2i64 (i64* %p , <2 x i1 > <i1 true , i1 true >, <2 x i64 > %passthru )
4445 ret <2 x i64 > %ret
4546}
4647
4748define <2 x i64 > @scalarize_v2i64_zero_mask (i64* %p , <2 x i64 > %passthru ) {
4849; CHECK-LABEL: @scalarize_v2i64_zero_mask(
49- ; CHECK-NEXT: ret <2 x i64> [[PASSTHRU:%.*]]
50+ ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <2 x i64> undef, <2 x i64> [[PASSTHRU:%.*]], <2 x i32> <i32 2, i32 3>
51+ ; CHECK-NEXT: ret <2 x i64> [[TMP1]]
5052;
5153 %ret = call <2 x i64 > @llvm.masked.expandload.v2i64.p0v2i64 (i64* %p , <2 x i1 > <i1 false , i1 false >, <2 x i64 > %passthru )
5254 ret <2 x i64 > %ret
@@ -56,8 +58,9 @@ define <2 x i64> @scalarize_v2i64_const_mask(i64* %p, <2 x i64> %passthru) {
5658; CHECK-LABEL: @scalarize_v2i64_const_mask(
5759; CHECK-NEXT: [[TMP1:%.*]] = getelementptr inbounds i64, i64* [[P:%.*]], i32 0
5860; CHECK-NEXT: [[LOAD1:%.*]] = load i64, i64* [[TMP1]], align 1
59- ; CHECK-NEXT: [[RES1:%.*]] = insertelement <2 x i64> [[PASSTHRU:%.*]], i64 [[LOAD1]], i64 1
60- ; CHECK-NEXT: ret <2 x i64> [[RES1]]
61+ ; CHECK-NEXT: [[RES1:%.*]] = insertelement <2 x i64> undef, i64 [[LOAD1]], i64 1
62+ ; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <2 x i64> [[RES1]], <2 x i64> [[PASSTHRU:%.*]], <2 x i32> <i32 2, i32 1>
63+ ; CHECK-NEXT: ret <2 x i64> [[TMP2]]
6164;
6265 %ret = call <2 x i64 > @llvm.masked.expandload.v2i64.p0v2i64 (i64* %p , <2 x i1 > <i1 false , i1 true >, <2 x i64 > %passthru )
6366 ret <2 x i64 > %ret
0 commit comments