@@ -9,11 +9,10 @@ declare void @use_v4f64(<4 x double>)
9
9
define <4 x double > @fadd_v4f64 (<4 x double > %a , <4 x double > %b ) {
10
10
; CHECK-LABEL: define <4 x double> @fadd_v4f64(
11
11
; 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 >
14
14
; 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]]
17
16
;
18
17
%a1 = shufflevector <4 x double > %a , <4 x double > poison, <4 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 >
19
18
%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) {
25
24
define <4 x double > @fadd_v4f64_poison_idx (<4 x double > %a , <4 x double > %b ) {
26
25
; CHECK-LABEL: define <4 x double> @fadd_v4f64_poison_idx(
27
26
; 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 >
30
29
; 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]]
33
31
;
34
32
%a1 = shufflevector <4 x double > %a , <4 x double > poison, <4 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 >
35
33
%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) {
41
39
define <4 x double > @fadd_mixed_types (<4 x double > %a , <2 x double > %b ) {
42
40
; CHECK-LABEL: define <4 x double> @fadd_mixed_types(
43
41
; 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 >
46
44
; 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]]
49
46
;
50
47
%a1 = shufflevector <4 x double > %a , <4 x double > poison, <4 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 >
51
48
%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> %
95
92
define <4 x i32 > @sdiv_v4i32 (<4 x i32 > %a , <4 x i32 > %b ) {
96
93
; CHECK-LABEL: define <4 x i32> @sdiv_v4i32(
97
94
; 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 >
100
97
; 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]]
103
99
;
104
100
%a1 = shufflevector <4 x i32 > %a , <4 x i32 > poison, <4 x i32 > <i32 3 , i32 2 , i32 1 , i32 0 >
105
101
%b1 = shufflevector <4 x i32 > %b , <4 x i32 > poison, <4 x i32 > <i32 1 , i32 0 , i32 1 , i32 0 >
0 commit comments