@@ -9,11 +9,10 @@ declare void @use_v4f64(<4 x double>)
99define <4 x double > @fadd_v4f64 (<4 x double > %a , <4 x double > %b ) {
1010; CHECK-LABEL: define <4 x double> @fadd_v4f64(
1111; CHECK-SAME: <4 x double> [[A:%.*]], <4 x double> [[B:%.*]]) #[[ATTR0:[0-9]+]] {
12- ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x double> [[A]], <4 x double> poison, <4 x i32> <i32 3 , i32 2 , i32 1 , i32 0 >
13- ; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <4 x double> [[B]], <4 x double> poison, <4 x i32> <i32 1 , i32 0 , i32 1 , i32 0 >
12+ ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x double> [[A]], <4 x double> poison, <4 x i32> <i32 2 , i32 3 , i32 0 , i32 1 >
13+ ; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <4 x double> [[B]], <4 x double> poison, <4 x i32> <i32 0 , i32 1 , i32 0 , i32 1 >
1414; CHECK-NEXT: [[POST:%.*]] = fadd <4 x double> [[TMP1]], [[TMP2]]
15- ; CHECK-NEXT: [[POST1:%.*]] = shufflevector <4 x double> [[POST]], <4 x double> poison, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
16- ; CHECK-NEXT: ret <4 x double> [[POST1]]
15+ ; CHECK-NEXT: ret <4 x double> [[POST]]
1716;
1817 %a1 = shufflevector <4 x double > %a , <4 x double > poison, <4 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 >
1918 %b1 = shufflevector <4 x double > %b , <4 x double > poison, <4 x i32 > <i32 1 , i32 0 , i32 1 , i32 0 >
@@ -25,11 +24,10 @@ define <4 x double> @fadd_v4f64(<4 x double> %a, <4 x double> %b) {
2524define <4 x double > @fadd_v4f64_poison_idx (<4 x double > %a , <4 x double > %b ) {
2625; CHECK-LABEL: define <4 x double> @fadd_v4f64_poison_idx(
2726; CHECK-SAME: <4 x double> [[A:%.*]], <4 x double> [[B:%.*]]) #[[ATTR0]] {
28- ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x double> [[A]], <4 x double> poison, <4 x i32> <i32 3 , i32 2 , i32 1 , i32 0 >
29- ; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <4 x double> [[B]], <4 x double> poison, <4 x i32> <i32 1 , i32 0 , i32 1 , i32 0 >
27+ ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x double> [[A]], <4 x double> poison, <4 x i32> <i32 2 , i32 3 , i32 0 , i32 poison >
28+ ; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <4 x double> [[B]], <4 x double> poison, <4 x i32> <i32 0 , i32 1 , i32 0 , i32 poison >
3029; CHECK-NEXT: [[POST:%.*]] = fadd <4 x double> [[TMP1]], [[TMP2]]
31- ; CHECK-NEXT: [[POST1:%.*]] = shufflevector <4 x double> [[POST]], <4 x double> poison, <4 x i32> <i32 1, i32 0, i32 3, i32 4>
32- ; CHECK-NEXT: ret <4 x double> [[POST1]]
30+ ; CHECK-NEXT: ret <4 x double> [[POST]]
3331;
3432 %a1 = shufflevector <4 x double > %a , <4 x double > poison, <4 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 >
3533 %b1 = shufflevector <4 x double > %b , <4 x double > poison, <4 x i32 > <i32 1 , i32 0 , i32 1 , i32 0 >
@@ -41,11 +39,10 @@ define <4 x double> @fadd_v4f64_poison_idx(<4 x double> %a, <4 x double> %b) {
4139define <4 x double > @fadd_mixed_types (<4 x double > %a , <2 x double > %b ) {
4240; CHECK-LABEL: define <4 x double> @fadd_mixed_types(
4341; CHECK-SAME: <4 x double> [[A:%.*]], <2 x double> [[B:%.*]]) #[[ATTR0]] {
44- ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x double> [[A]], <4 x double> poison, <4 x i32> <i32 3 , i32 2 , i32 1 , i32 0 >
45- ; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <2 x double> [[B]], <2 x double> poison, <4 x i32> <i32 1 , i32 0 , i32 1 , i32 0 >
42+ ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x double> [[A]], <4 x double> poison, <4 x i32> <i32 2 , i32 3 , i32 0 , i32 1 >
43+ ; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <2 x double> [[B]], <2 x double> poison, <4 x i32> <i32 0 , i32 1 , i32 0 , i32 1 >
4644; CHECK-NEXT: [[POST:%.*]] = fadd <4 x double> [[TMP1]], [[TMP2]]
47- ; CHECK-NEXT: [[POST1:%.*]] = shufflevector <4 x double> [[POST]], <4 x double> poison, <4 x i32> <i32 1, i32 0, i32 3, i32 2>
48- ; CHECK-NEXT: ret <4 x double> [[POST1]]
45+ ; CHECK-NEXT: ret <4 x double> [[POST]]
4946;
5047 %a1 = shufflevector <4 x double > %a , <4 x double > poison, <4 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 >
5148 %b1 = shufflevector <2 x double > %b , <2 x double > poison, <4 x i32 > <i32 1 , i32 0 , i32 1 , i32 0 >
@@ -95,11 +92,10 @@ define <4 x double> @fadd_v4f64_multiuse_shuffle(<4 x double> %a, <4 x double> %
9592define <4 x i32 > @sdiv_v4i32 (<4 x i32 > %a , <4 x i32 > %b ) {
9693; CHECK-LABEL: define <4 x i32> @sdiv_v4i32(
9794; CHECK-SAME: <4 x i32> [[A:%.*]], <4 x i32> [[B:%.*]]) #[[ATTR0]] {
98- ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x i32> [[A]], <4 x i32> poison, <4 x i32> <i32 3 , i32 2 , i32 1 , i32 0 >
99- ; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <4 x i32> [[B]], <4 x i32> poison, <4 x i32> <i32 1 , i32 0 , i32 1 , i32 0 >
95+ ; CHECK-NEXT: [[TMP1:%.*]] = shufflevector <4 x i32> [[A]], <4 x i32> poison, <4 x i32> <i32 2 , i32 3 , i32 0 , i32 3 >
96+ ; CHECK-NEXT: [[TMP2:%.*]] = shufflevector <4 x i32> [[B]], <4 x i32> poison, <4 x i32> <i32 0 , i32 1 , i32 0 , i32 1 >
10097; CHECK-NEXT: [[POST:%.*]] = sdiv <4 x i32> [[TMP1]], [[TMP2]]
101- ; CHECK-NEXT: [[POST1:%.*]] = shufflevector <4 x i32> [[POST]], <4 x i32> poison, <4 x i32> <i32 1, i32 0, i32 3, i32 0>
102- ; CHECK-NEXT: ret <4 x i32> [[POST1]]
98+ ; CHECK-NEXT: ret <4 x i32> [[POST]]
10399;
104100 %a1 = shufflevector <4 x i32 > %a , <4 x i32 > poison, <4 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 >
105101 %b1 = shufflevector <4 x i32 > %b , <4 x i32 > poison, <4 x i32 > <i32 1 , i32 0 , i32 1 , i32 0 >
0 commit comments