@@ -92,60 +92,57 @@ define i1 @icmp_add_v8i32(<8 x i32> %a) {
92
92
ret i1 %r
93
93
}
94
94
95
- declare void @use.i1 (i1 )
96
- declare void @use.i32 (i32 )
97
- declare void @use.double (double )
98
-
95
+ declare void @use ()
99
96
100
97
define i1 @fcmp_and_v2f64_multiuse (<2 x double > %a ) {
101
98
; SSE-LABEL: @fcmp_and_v2f64_multiuse(
102
99
; SSE-NEXT: [[E1:%.*]] = extractelement <2 x double> [[A:%.*]], i32 0
103
- ; SSE-NEXT: call void @use.double (double [[E1]])
100
+ ; SSE-NEXT: call void @use(double [[E1]])
104
101
; SSE-NEXT: [[E2:%.*]] = extractelement <2 x double> [[A]], i32 1
105
102
; SSE-NEXT: [[CMP1:%.*]] = fcmp olt double [[E1]], 4.200000e+01
106
103
; SSE-NEXT: [[CMP2:%.*]] = fcmp olt double [[E2]], -8.000000e+00
107
104
; SSE-NEXT: [[R:%.*]] = and i1 [[CMP1]], [[CMP2]]
108
- ; SSE-NEXT: call void @use.i1 (i1 [[R]])
105
+ ; SSE-NEXT: call void @use(i1 [[R]])
109
106
; SSE-NEXT: ret i1 [[R]]
110
107
;
111
108
; AVX-LABEL: @fcmp_and_v2f64_multiuse(
112
109
; AVX-NEXT: [[E1:%.*]] = extractelement <2 x double> [[A:%.*]], i32 0
113
- ; AVX-NEXT: call void @use.double (double [[E1]])
110
+ ; AVX-NEXT: call void @use(double [[E1]])
114
111
; AVX-NEXT: [[TMP1:%.*]] = fcmp olt <2 x double> [[A]], <double 4.200000e+01, double -8.000000e+00>
115
112
; AVX-NEXT: [[SHIFT:%.*]] = shufflevector <2 x i1> [[TMP1]], <2 x i1> poison, <2 x i32> <i32 1, i32 poison>
116
113
; AVX-NEXT: [[TMP2:%.*]] = and <2 x i1> [[TMP1]], [[SHIFT]]
117
114
; AVX-NEXT: [[R:%.*]] = extractelement <2 x i1> [[TMP2]], i64 0
118
- ; AVX-NEXT: call void @use.i1 (i1 [[R]])
115
+ ; AVX-NEXT: call void @use(i1 [[R]])
119
116
; AVX-NEXT: ret i1 [[R]]
120
117
;
121
118
%e1 = extractelement <2 x double > %a , i32 0
122
- call void @use.double (double %e1 )
119
+ call void @use (double %e1 )
123
120
%e2 = extractelement <2 x double > %a , i32 1
124
121
%cmp1 = fcmp olt double %e1 , 42 .0
125
122
%cmp2 = fcmp olt double %e2 , -8 .0
126
123
%r = and i1 %cmp1 , %cmp2
127
- call void @use.i1 (i1 %r )
124
+ call void @use (i1 %r )
128
125
ret i1 %r
129
126
}
130
127
131
128
define i1 @icmp_xor_v4i32_multiuse (<4 x i32 > %a ) {
132
129
; CHECK-LABEL: @icmp_xor_v4i32_multiuse(
133
130
; CHECK-NEXT: [[E2:%.*]] = extractelement <4 x i32> [[A:%.*]], i32 1
134
- ; CHECK-NEXT: call void @use.i32 (i32 [[E2]])
131
+ ; CHECK-NEXT: call void @use(i32 [[E2]])
135
132
; CHECK-NEXT: [[TMP1:%.*]] = icmp sgt <4 x i32> [[A]], <i32 poison, i32 -8, i32 poison, i32 42>
136
133
; CHECK-NEXT: [[SHIFT:%.*]] = shufflevector <4 x i1> [[TMP1]], <4 x i1> poison, <4 x i32> <i32 poison, i32 3, i32 poison, i32 poison>
137
134
; CHECK-NEXT: [[TMP2:%.*]] = xor <4 x i1> [[TMP1]], [[SHIFT]]
138
135
; CHECK-NEXT: [[R:%.*]] = extractelement <4 x i1> [[TMP2]], i64 1
139
- ; CHECK-NEXT: call void @use.i1 (i1 [[R]])
136
+ ; CHECK-NEXT: call void @use(i1 [[R]])
140
137
; CHECK-NEXT: ret i1 [[R]]
141
138
;
142
139
%e1 = extractelement <4 x i32 > %a , i32 3
143
140
%e2 = extractelement <4 x i32 > %a , i32 1
144
- call void @use.i32 (i32 %e2 )
141
+ call void @use (i32 %e2 )
145
142
%cmp1 = icmp sgt i32 %e1 , 42
146
143
%cmp2 = icmp sgt i32 %e2 , -8
147
144
%r = xor i1 %cmp1 , %cmp2
148
- call void @use.i1 (i1 %r )
145
+ call void @use (i1 %r )
149
146
ret i1 %r
150
147
}
151
148
0 commit comments