@@ -302,9 +302,7 @@ define i16 @cttz_assume(i16 %x) {
302
302
declare void @use.i8 (i8 )
303
303
define i8 @fold_ctz_log2 (i8 %x ) {
304
304
; CHECK-LABEL: @fold_ctz_log2(
305
- ; CHECK-NEXT: [[P2:%.*]] = shl nuw i8 1, [[X:%.*]]
306
- ; CHECK-NEXT: [[V:%.*]] = call i8 @llvm.umin.i8(i8 [[P2]], i8 32)
307
- ; CHECK-NEXT: [[R:%.*]] = call range(i8 0, 9) i8 @llvm.cttz.i8(i8 [[V]], i1 true)
305
+ ; CHECK-NEXT: [[R:%.*]] = call i8 @llvm.umin.i8(i8 [[X:%.*]], i8 5)
308
306
; CHECK-NEXT: ret i8 [[R]]
309
307
;
310
308
%p2 = shl i8 1 , %x
@@ -343,11 +341,10 @@ define i8 @fold_ctz_log2_maybe_z(i8 %x, i8 %y, i1 %c) {
343
341
344
342
define i8 @fold_ctz_log2_maybe_z_okay (i8 %x , i8 %y , i1 %c ) {
345
343
; CHECK-LABEL: @fold_ctz_log2_maybe_z_okay(
346
- ; CHECK-NEXT: [[X:%.*]] = shl i8 2, [[X1:%.*]]
347
- ; CHECK-NEXT: [[Y:%.*]] = shl i8 4, [[Y1:%.*]]
344
+ ; CHECK-NEXT: [[X:%.*]] = add i8 [[X1:%.*]], 1
345
+ ; CHECK-NEXT: [[Y:%.*]] = add i8 [[Y1:%.*]], 2
348
346
; CHECK-NEXT: [[V_V:%.*]] = select i1 [[C:%.*]], i8 [[X]], i8 [[Y]]
349
- ; CHECK-NEXT: [[R:%.*]] = call range(i8 1, 9) i8 @llvm.cttz.i8(i8 [[V_V]], i1 true)
350
- ; CHECK-NEXT: ret i8 [[R]]
347
+ ; CHECK-NEXT: ret i8 [[V_V]]
351
348
;
352
349
%p2 = shl i8 2 , %x
353
350
%p2_2 = shl i8 4 , %y
@@ -358,9 +355,8 @@ define i8 @fold_ctz_log2_maybe_z_okay(i8 %x, i8 %y, i1 %c) {
358
355
359
356
define i8 @fold_clz_log2 (i8 %x ) {
360
357
; CHECK-LABEL: @fold_clz_log2(
361
- ; CHECK-NEXT: [[P2:%.*]] = shl nuw i8 1, [[X:%.*]]
362
- ; CHECK-NEXT: [[V:%.*]] = call i8 @llvm.umin.i8(i8 [[P2]], i8 32)
363
- ; CHECK-NEXT: [[R:%.*]] = call range(i8 2, 9) i8 @llvm.ctlz.i8(i8 [[V]], i1 true)
358
+ ; CHECK-NEXT: [[TMP1:%.*]] = call i8 @llvm.umin.i8(i8 [[X:%.*]], i8 5)
359
+ ; CHECK-NEXT: [[R:%.*]] = xor i8 [[TMP1]], 7
364
360
; CHECK-NEXT: ret i8 [[R]]
365
361
;
366
362
%p2 = shl i8 1 , %x
0 commit comments