@@ -13,9 +13,8 @@ define i1 @f(i1 %cond, i32 %x, i32 %x2) {
13
13
14
14
define i1 @icmp_ne_common_op00 (i1 %c , i6 %x , i6 %y , i6 %z ) {
15
15
; CHECK-LABEL: @icmp_ne_common_op00(
16
- ; CHECK-NEXT: [[CMP1:%.*]] = icmp ne i6 [[X:%.*]], [[Y:%.*]]
17
- ; CHECK-NEXT: [[CMP2:%.*]] = icmp ne i6 [[X]], [[Z:%.*]]
18
- ; CHECK-NEXT: [[R:%.*]] = select i1 [[C:%.*]], i1 [[CMP1]], i1 [[CMP2]]
16
+ ; CHECK-NEXT: [[R_V:%.*]] = select i1 [[C:%.*]], i6 [[Y:%.*]], i6 [[Z:%.*]]
17
+ ; CHECK-NEXT: [[R:%.*]] = icmp ne i6 [[R_V]], [[X:%.*]]
19
18
; CHECK-NEXT: ret i1 [[R]]
20
19
;
21
20
%cmp1 = icmp ne i6 %x , %y
@@ -26,9 +25,8 @@ define i1 @icmp_ne_common_op00(i1 %c, i6 %x, i6 %y, i6 %z) {
26
25
27
26
define i1 @icmp_ne_common_op01 (i1 %c , i3 %x , i3 %y , i3 %z ) {
28
27
; CHECK-LABEL: @icmp_ne_common_op01(
29
- ; CHECK-NEXT: [[CMP1:%.*]] = icmp ne i3 [[X:%.*]], [[Y:%.*]]
30
- ; CHECK-NEXT: [[CMP2:%.*]] = icmp ne i3 [[Z:%.*]], [[X]]
31
- ; CHECK-NEXT: [[R:%.*]] = select i1 [[C:%.*]], i1 [[CMP1]], i1 [[CMP2]]
28
+ ; CHECK-NEXT: [[R_V:%.*]] = select i1 [[C:%.*]], i3 [[Y:%.*]], i3 [[Z:%.*]]
29
+ ; CHECK-NEXT: [[R:%.*]] = icmp ne i3 [[R_V]], [[X:%.*]]
32
30
; CHECK-NEXT: ret i1 [[R]]
33
31
;
34
32
%cmp1 = icmp ne i3 %x , %y
@@ -39,9 +37,8 @@ define i1 @icmp_ne_common_op01(i1 %c, i3 %x, i3 %y, i3 %z) {
39
37
40
38
define i1 @icmp_ne_common_op10 (i1 %c , i4 %x , i4 %y , i4 %z ) {
41
39
; CHECK-LABEL: @icmp_ne_common_op10(
42
- ; CHECK-NEXT: [[CMP1:%.*]] = icmp ne i4 [[Y:%.*]], [[X:%.*]]
43
- ; CHECK-NEXT: [[CMP2:%.*]] = icmp ne i4 [[X]], [[Z:%.*]]
44
- ; CHECK-NEXT: [[R:%.*]] = select i1 [[C:%.*]], i1 [[CMP1]], i1 [[CMP2]]
40
+ ; CHECK-NEXT: [[R_V:%.*]] = select i1 [[C:%.*]], i4 [[Y:%.*]], i4 [[Z:%.*]]
41
+ ; CHECK-NEXT: [[R:%.*]] = icmp ne i4 [[R_V]], [[X:%.*]]
45
42
; CHECK-NEXT: ret i1 [[R]]
46
43
;
47
44
%cmp1 = icmp ne i4 %y , %x
@@ -52,9 +49,8 @@ define i1 @icmp_ne_common_op10(i1 %c, i4 %x, i4 %y, i4 %z) {
52
49
53
50
define <3 x i1 > @icmp_ne_common_op11 (<3 x i1 > %c , <3 x i17 > %x , <3 x i17 > %y , <3 x i17 > %z ) {
54
51
; CHECK-LABEL: @icmp_ne_common_op11(
55
- ; CHECK-NEXT: [[CMP1:%.*]] = icmp ne <3 x i17> [[Y:%.*]], [[X:%.*]]
56
- ; CHECK-NEXT: [[CMP2:%.*]] = icmp ne <3 x i17> [[Z:%.*]], [[X]]
57
- ; CHECK-NEXT: [[R:%.*]] = select <3 x i1> [[C:%.*]], <3 x i1> [[CMP1]], <3 x i1> [[CMP2]]
52
+ ; CHECK-NEXT: [[R_V:%.*]] = select <3 x i1> [[C:%.*]], <3 x i17> [[Y:%.*]], <3 x i17> [[Z:%.*]]
53
+ ; CHECK-NEXT: [[R:%.*]] = icmp ne <3 x i17> [[R_V]], [[X:%.*]]
58
54
; CHECK-NEXT: ret <3 x i1> [[R]]
59
55
;
60
56
%cmp1 = icmp ne <3 x i17 > %y , %x
@@ -65,9 +61,8 @@ define <3 x i1> @icmp_ne_common_op11(<3 x i1> %c, <3 x i17> %x, <3 x i17> %y, <3
65
61
66
62
define i1 @icmp_eq_common_op00 (i1 %c , i5 %x , i5 %y , i5 %z ) {
67
63
; CHECK-LABEL: @icmp_eq_common_op00(
68
- ; CHECK-NEXT: [[CMP1:%.*]] = icmp eq i5 [[X:%.*]], [[Y:%.*]]
69
- ; CHECK-NEXT: [[CMP2:%.*]] = icmp eq i5 [[X]], [[Z:%.*]]
70
- ; CHECK-NEXT: [[R:%.*]] = select i1 [[C:%.*]], i1 [[CMP1]], i1 [[CMP2]]
64
+ ; CHECK-NEXT: [[R_V:%.*]] = select i1 [[C:%.*]], i5 [[Y:%.*]], i5 [[Z:%.*]]
65
+ ; CHECK-NEXT: [[R:%.*]] = icmp eq i5 [[R_V]], [[X:%.*]]
71
66
; CHECK-NEXT: ret i1 [[R]]
72
67
;
73
68
%cmp1 = icmp eq i5 %x , %y
@@ -78,9 +73,8 @@ define i1 @icmp_eq_common_op00(i1 %c, i5 %x, i5 %y, i5 %z) {
78
73
79
74
define <5 x i1 > @icmp_eq_common_op01 (<5 x i1 > %c , <5 x i7 > %x , <5 x i7 > %y , <5 x i7 > %z ) {
80
75
; CHECK-LABEL: @icmp_eq_common_op01(
81
- ; CHECK-NEXT: [[CMP1:%.*]] = icmp eq <5 x i7> [[X:%.*]], [[Y:%.*]]
82
- ; CHECK-NEXT: [[CMP2:%.*]] = icmp eq <5 x i7> [[Z:%.*]], [[X]]
83
- ; CHECK-NEXT: [[R:%.*]] = select <5 x i1> [[C:%.*]], <5 x i1> [[CMP1]], <5 x i1> [[CMP2]]
76
+ ; CHECK-NEXT: [[R_V:%.*]] = select <5 x i1> [[C:%.*]], <5 x i7> [[Y:%.*]], <5 x i7> [[Z:%.*]]
77
+ ; CHECK-NEXT: [[R:%.*]] = icmp eq <5 x i7> [[R_V]], [[X:%.*]]
84
78
; CHECK-NEXT: ret <5 x i1> [[R]]
85
79
;
86
80
%cmp1 = icmp eq <5 x i7 > %x , %y
@@ -91,9 +85,8 @@ define <5 x i1> @icmp_eq_common_op01(<5 x i1> %c, <5 x i7> %x, <5 x i7> %y, <5 x
91
85
92
86
define i1 @icmp_eq_common_op10 (i1 %c , i32 %x , i32 %y , i32 %z ) {
93
87
; CHECK-LABEL: @icmp_eq_common_op10(
94
- ; CHECK-NEXT: [[CMP1:%.*]] = icmp eq i32 [[Y:%.*]], [[X:%.*]]
95
- ; CHECK-NEXT: [[CMP2:%.*]] = icmp eq i32 [[X]], [[Z:%.*]]
96
- ; CHECK-NEXT: [[R:%.*]] = select i1 [[C:%.*]], i1 [[CMP1]], i1 [[CMP2]]
88
+ ; CHECK-NEXT: [[R_V:%.*]] = select i1 [[C:%.*]], i32 [[Y:%.*]], i32 [[Z:%.*]]
89
+ ; CHECK-NEXT: [[R:%.*]] = icmp eq i32 [[R_V]], [[X:%.*]]
97
90
; CHECK-NEXT: ret i1 [[R]]
98
91
;
99
92
%cmp1 = icmp eq i32 %y , %x
@@ -104,9 +97,8 @@ define i1 @icmp_eq_common_op10(i1 %c, i32 %x, i32 %y, i32 %z) {
104
97
105
98
define i1 @icmp_eq_common_op11 (i1 %c , i64 %x , i64 %y , i64 %z ) {
106
99
; CHECK-LABEL: @icmp_eq_common_op11(
107
- ; CHECK-NEXT: [[CMP1:%.*]] = icmp eq i64 [[Y:%.*]], [[X:%.*]]
108
- ; CHECK-NEXT: [[CMP2:%.*]] = icmp eq i64 [[Z:%.*]], [[X]]
109
- ; CHECK-NEXT: [[R:%.*]] = select i1 [[C:%.*]], i1 [[CMP1]], i1 [[CMP2]]
100
+ ; CHECK-NEXT: [[R_V:%.*]] = select i1 [[C:%.*]], i64 [[Y:%.*]], i64 [[Z:%.*]]
101
+ ; CHECK-NEXT: [[R:%.*]] = icmp eq i64 [[R_V]], [[X:%.*]]
110
102
; CHECK-NEXT: ret i1 [[R]]
111
103
;
112
104
%cmp1 = icmp eq i64 %y , %x
@@ -119,8 +111,8 @@ define i1 @icmp_common_one_use_1(i1 %c, i8 %x, i8 %y, i8 %z) {
119
111
; CHECK-LABEL: @icmp_common_one_use_1(
120
112
; CHECK-NEXT: [[CMP1:%.*]] = icmp eq i8 [[Y:%.*]], [[X:%.*]]
121
113
; CHECK-NEXT: call void @use(i1 [[CMP1]])
122
- ; CHECK-NEXT: [[CMP2 :%.*]] = icmp eq i8 [[Z :%.*]], [[X ]]
123
- ; CHECK-NEXT: [[R:%.*]] = select i1 [[C:%.*]], i1 [[CMP1 ]], i1 [[CMP2 ]]
114
+ ; CHECK-NEXT: [[R_V :%.*]] = select i1 [[C :%.*]], i8 [[Y]], i8 [[Z:%.* ]]
115
+ ; CHECK-NEXT: [[R:%.*]] = icmp eq i8 [[R_V ]], [[X ]]
124
116
; CHECK-NEXT: ret i1 [[R]]
125
117
;
126
118
%cmp1 = icmp eq i8 %y , %x
0 commit comments