Lines Matching +full:- +full:ne

1 ; RUN: opt -instcombine -S < %s | FileCheck %s
8 ; CHECK-LABEL: @test1(
9 ; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i16 @llvm.ctlz.i16(i16 %x, i1 false)
10 ; CHECK-NEXT: ret i16 [[VAR]]
13 %tobool = icmp ne i16 %x, 0
19 ; CHECK-LABEL: @test2(
20 ; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i32 @llvm.ctlz.i32(i32 %x, i1 false)
21 ; CHECK-NEXT: ret i32 [[VAR]]
24 %tobool = icmp ne i32 %x, 0
30 ; CHECK-LABEL: @test3(
31 ; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i64 @llvm.ctlz.i64(i64 %x, i1 false)
32 ; CHECK-NEXT: ret i64 [[VAR]]
35 %tobool = icmp ne i64 %x, 0
41 ; CHECK-LABEL: @test4(
42 ; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i16 @llvm.ctlz.i16(i16 %x, i1 false)
43 ; CHECK-NEXT: ret i16 [[VAR]]
52 ; CHECK-LABEL: @test5(
53 ; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i32 @llvm.ctlz.i32(i32 %x, i1 false)
54 ; CHECK-NEXT: ret i32 [[VAR]]
63 ; CHECK-LABEL: @test6(
64 ; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i64 @llvm.ctlz.i64(i64 %x, i1 false)
65 ; CHECK-NEXT: ret i64 [[VAR]]
74 ; CHECK-LABEL: @test1b(
75 ; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i16 @llvm.cttz.i16(i16 %x, i1 false)
76 ; CHECK-NEXT: ret i16 [[VAR]]
79 %tobool = icmp ne i16 %x, 0
85 ; CHECK-LABEL: @test2b(
86 ; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i32 @llvm.cttz.i32(i32 %x, i1 false)
87 ; CHECK-NEXT: ret i32 [[VAR]]
90 %tobool = icmp ne i32 %x, 0
96 ; CHECK-LABEL: @test3b(
97 ; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i64 @llvm.cttz.i64(i64 %x, i1 false)
98 ; CHECK-NEXT: ret i64 [[VAR]]
101 %tobool = icmp ne i64 %x, 0
107 ; CHECK-LABEL: @test4b(
108 ; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i16 @llvm.cttz.i16(i16 %x, i1 false)
109 ; CHECK-NEXT: ret i16 [[VAR]]
118 ; CHECK-LABEL: @test5b(
119 ; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i32 @llvm.cttz.i32(i32 %x, i1 false)
120 ; CHECK-NEXT: ret i32 [[VAR]]
129 ; CHECK-LABEL: @test6b(
130 ; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i64 @llvm.cttz.i64(i64 %x, i1 false)
131 ; CHECK-NEXT: ret i64 [[VAR]]
140 ; CHECK-LABEL: @test1c(
141 ; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i16 @llvm.cttz.i16(i16 %x, i1 false)
142 ; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = zext i16 [[VAR1]] to i32
143 ; CHECK-NEXT: ret i32 [[VAR2]]
147 %tobool = icmp ne i16 %x, 0
153 ; CHECK-LABEL: @test2c(
154 ; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i16 @llvm.cttz.i16(i16 %x, i1 false)
155 ; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = zext i16 [[VAR1]] to i64
156 ; CHECK-NEXT: ret i64 [[VAR2]]
160 %tobool = icmp ne i16 %x, 0
166 ; CHECK-LABEL: @test3c(
167 ; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i32 @llvm.cttz.i32(i32 %x, i1 false)
168 ; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = zext i32 [[VAR1]] to i64
169 ; CHECK-NEXT: ret i64 [[VAR2]]
173 %tobool = icmp ne i32 %x, 0
179 ; CHECK-LABEL: @test4c(
180 ; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i16 @llvm.ctlz.i16(i16 %x, i1 false)
181 ; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = zext i16 [[VAR1]] to i32
182 ; CHECK-NEXT: ret i32 [[VAR2]]
186 %tobool = icmp ne i16 %x, 0
192 ; CHECK-LABEL: @test5c(
193 ; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i16 @llvm.ctlz.i16(i16 %x, i1 false)
194 ; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = zext i16 [[VAR1]] to i64
195 ; CHECK-NEXT: ret i64 [[VAR2]]
199 %tobool = icmp ne i16 %x, 0
205 ; CHECK-LABEL: @test6c(
206 ; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i32 @llvm.ctlz.i32(i32 %x, i1 false)
207 ; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = zext i32 [[VAR1]] to i64
208 ; CHECK-NEXT: ret i64 [[VAR2]]
212 %tobool = icmp ne i32 %x, 0
218 ; CHECK-LABEL: @test1d(
219 ; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i64 @llvm.cttz.i64(i64 %x, i1 false)
220 ; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = trunc i64 [[VAR1]] to i16
221 ; CHECK-NEXT: ret i16 [[VAR2]]
225 %tobool = icmp ne i64 %x, 0
231 ; CHECK-LABEL: @test2d(
232 ; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i64 @llvm.cttz.i64(i64 %x, i1 false)
233 ; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = trunc i64 [[VAR1]] to i32
234 ; CHECK-NEXT: ret i32 [[VAR2]]
238 %tobool = icmp ne i64 %x, 0
244 ; CHECK-LABEL: @test3d(
245 ; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i32 @llvm.cttz.i32(i32 %x, i1 false)
246 ; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = trunc i32 [[VAR1]] to i16
247 ; CHECK-NEXT: ret i16 [[VAR2]]
251 %tobool = icmp ne i32 %x, 0
257 ; CHECK-LABEL: @test4d(
258 ; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i64 @llvm.ctlz.i64(i64 %x, i1 false)
259 ; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = trunc i64 [[VAR1]] to i16
260 ; CHECK-NEXT: ret i16 [[VAR2]]
264 %tobool = icmp ne i64 %x, 0
270 ; CHECK-LABEL: @test5d(
271 ; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i64 @llvm.ctlz.i64(i64 %x, i1 false)
272 ; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = trunc i64 [[VAR1]] to i32
273 ; CHECK-NEXT: ret i32 [[VAR2]]
277 %tobool = icmp ne i64 %x, 0
283 ; CHECK-LABEL: @test6d(
284 ; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i32 @llvm.ctlz.i32(i32 %x, i1 false)
285 ; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = trunc i32 [[VAR1]] to i16
286 ; CHECK-NEXT: ret i16 [[VAR2]]
290 %tobool = icmp ne i32 %x, 0
296 ; CHECK-LABEL: @select_bug1(
297 ; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i32 @llvm.cttz.i32(i32 %x, i1 false)
298 ; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = zext i32 [[VAR1]] to i64
299 ; CHECK-NEXT: ret i64 [[VAR2]]
303 %tobool = icmp ne i32 %x, 0
309 ; CHECK-LABEL: @select_bug2(
310 ; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i32 @llvm.cttz.i32(i32 %x, i1 false)
311 ; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = trunc i32 [[VAR1]] to i16
312 ; CHECK-NEXT: ret i16 [[VAR2]]
316 %tobool = icmp ne i32 %x, 0