[llvm] r349321 - [InstCombine] Regenerate test checks; NFC
Nikita Popov via llvm-commits
llvm-commits at lists.llvm.org
Sun Dec 16 15:48:12 PST 2018
Author: nikic
Date: Sun Dec 16 15:48:11 2018
New Revision: 349321
URL: http://llvm.org/viewvc/llvm-project?rev=349321&view=rev
Log:
[InstCombine] Regenerate test checks; NFC
Also drop unnecessary entry blocks and avoid use of anonymous
variables.
Modified:
llvm/trunk/test/Transforms/InstCombine/select-cmp-cttz-ctlz.ll
Modified: llvm/trunk/test/Transforms/InstCombine/select-cmp-cttz-ctlz.ll
URL: http://llvm.org/viewvc/llvm-project/llvm/trunk/test/Transforms/InstCombine/select-cmp-cttz-ctlz.ll?rev=349321&r1=349320&r2=349321&view=diff
==============================================================================
--- llvm/trunk/test/Transforms/InstCombine/select-cmp-cttz-ctlz.ll (original)
+++ llvm/trunk/test/Transforms/InstCombine/select-cmp-cttz-ctlz.ll Sun Dec 16 15:48:11 2018
@@ -1,3 +1,4 @@
+; NOTE: Assertions have been autogenerated by utils/update_test_checks.py
; RUN: opt -instcombine -S < %s | FileCheck %s
; This test is to verify that the instruction combiner is able to fold
@@ -6,144 +7,146 @@
define i16 @test1(i16 %x) {
; CHECK-LABEL: @test1(
-; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i16 @llvm.ctlz.i16(i16 %x, i1 false)
-; CHECK-NEXT: ret i16 [[VAR]]
-entry:
- %0 = tail call i16 @llvm.ctlz.i16(i16 %x, i1 true)
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i16 @llvm.ctlz.i16(i16 [[X:%.*]], i1 false), !range !0
+; CHECK-NEXT: ret i16 [[TMP1]]
+;
+ %ct = tail call i16 @llvm.ctlz.i16(i16 %x, i1 true)
%tobool = icmp ne i16 %x, 0
- %cond = select i1 %tobool, i16 %0, i16 16
+ %cond = select i1 %tobool, i16 %ct, i16 16
ret i16 %cond
}
define i32 @test2(i32 %x) {
; CHECK-LABEL: @test2(
-; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i32 @llvm.ctlz.i32(i32 %x, i1 false)
-; CHECK-NEXT: ret i32 [[VAR]]
-entry:
- %0 = tail call i32 @llvm.ctlz.i32(i32 %x, i1 true)
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.ctlz.i32(i32 [[X:%.*]], i1 false), !range !1
+; CHECK-NEXT: ret i32 [[TMP1]]
+;
+ %ct = tail call i32 @llvm.ctlz.i32(i32 %x, i1 true)
%tobool = icmp ne i32 %x, 0
- %cond = select i1 %tobool, i32 %0, i32 32
+ %cond = select i1 %tobool, i32 %ct, i32 32
ret i32 %cond
}
define i64 @test3(i64 %x) {
; CHECK-LABEL: @test3(
-; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i64 @llvm.ctlz.i64(i64 %x, i1 false)
-; CHECK-NEXT: ret i64 [[VAR]]
-entry:
- %0 = tail call i64 @llvm.ctlz.i64(i64 %x, i1 true)
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i64 @llvm.ctlz.i64(i64 [[X:%.*]], i1 false), !range !2
+; CHECK-NEXT: ret i64 [[TMP1]]
+;
+ %ct = tail call i64 @llvm.ctlz.i64(i64 %x, i1 true)
%tobool = icmp ne i64 %x, 0
- %cond = select i1 %tobool, i64 %0, i64 64
+ %cond = select i1 %tobool, i64 %ct, i64 64
ret i64 %cond
}
define i16 @test4(i16 %x) {
; CHECK-LABEL: @test4(
-; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i16 @llvm.ctlz.i16(i16 %x, i1 false)
-; CHECK-NEXT: ret i16 [[VAR]]
-entry:
- %0 = tail call i16 @llvm.ctlz.i16(i16 %x, i1 true)
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i16 @llvm.ctlz.i16(i16 [[X:%.*]], i1 false), !range !0
+; CHECK-NEXT: ret i16 [[TMP1]]
+;
+ %ct = tail call i16 @llvm.ctlz.i16(i16 %x, i1 true)
%tobool = icmp eq i16 %x, 0
- %cond = select i1 %tobool, i16 16, i16 %0
+ %cond = select i1 %tobool, i16 16, i16 %ct
ret i16 %cond
}
define i32 @test5(i32 %x) {
; CHECK-LABEL: @test5(
-; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i32 @llvm.ctlz.i32(i32 %x, i1 false)
-; CHECK-NEXT: ret i32 [[VAR]]
-entry:
- %0 = tail call i32 @llvm.ctlz.i32(i32 %x, i1 true)
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.ctlz.i32(i32 [[X:%.*]], i1 false), !range !1
+; CHECK-NEXT: ret i32 [[TMP1]]
+;
+ %ct = tail call i32 @llvm.ctlz.i32(i32 %x, i1 true)
%tobool = icmp eq i32 %x, 0
- %cond = select i1 %tobool, i32 32, i32 %0
+ %cond = select i1 %tobool, i32 32, i32 %ct
ret i32 %cond
}
define i64 @test6(i64 %x) {
; CHECK-LABEL: @test6(
-; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i64 @llvm.ctlz.i64(i64 %x, i1 false)
-; CHECK-NEXT: ret i64 [[VAR]]
-entry:
- %0 = tail call i64 @llvm.ctlz.i64(i64 %x, i1 true)
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i64 @llvm.ctlz.i64(i64 [[X:%.*]], i1 false), !range !2
+; CHECK-NEXT: ret i64 [[TMP1]]
+;
+ %ct = tail call i64 @llvm.ctlz.i64(i64 %x, i1 true)
%tobool = icmp eq i64 %x, 0
- %cond = select i1 %tobool, i64 64, i64 %0
+ %cond = select i1 %tobool, i64 64, i64 %ct
ret i64 %cond
}
define i16 @test1b(i16 %x) {
; CHECK-LABEL: @test1b(
-; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i16 @llvm.cttz.i16(i16 %x, i1 false)
-; CHECK-NEXT: ret i16 [[VAR]]
-entry:
- %0 = tail call i16 @llvm.cttz.i16(i16 %x, i1 true)
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i16 @llvm.cttz.i16(i16 [[X:%.*]], i1 false), !range !0
+; CHECK-NEXT: ret i16 [[TMP1]]
+;
+ %ct = tail call i16 @llvm.cttz.i16(i16 %x, i1 true)
%tobool = icmp ne i16 %x, 0
- %cond = select i1 %tobool, i16 %0, i16 16
+ %cond = select i1 %tobool, i16 %ct, i16 16
ret i16 %cond
}
define i32 @test2b(i32 %x) {
; CHECK-LABEL: @test2b(
-; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i32 @llvm.cttz.i32(i32 %x, i1 false)
-; CHECK-NEXT: ret i32 [[VAR]]
-entry:
- %0 = tail call i32 @llvm.cttz.i32(i32 %x, i1 true)
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.cttz.i32(i32 [[X:%.*]], i1 false), !range !1
+; CHECK-NEXT: ret i32 [[TMP1]]
+;
+ %ct = tail call i32 @llvm.cttz.i32(i32 %x, i1 true)
%tobool = icmp ne i32 %x, 0
- %cond = select i1 %tobool, i32 %0, i32 32
+ %cond = select i1 %tobool, i32 %ct, i32 32
ret i32 %cond
}
define i64 @test3b(i64 %x) {
; CHECK-LABEL: @test3b(
-; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i64 @llvm.cttz.i64(i64 %x, i1 false)
-; CHECK-NEXT: ret i64 [[VAR]]
-entry:
- %0 = tail call i64 @llvm.cttz.i64(i64 %x, i1 true)
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i64 @llvm.cttz.i64(i64 [[X:%.*]], i1 false), !range !2
+; CHECK-NEXT: ret i64 [[TMP1]]
+;
+ %ct = tail call i64 @llvm.cttz.i64(i64 %x, i1 true)
%tobool = icmp ne i64 %x, 0
- %cond = select i1 %tobool, i64 %0, i64 64
+ %cond = select i1 %tobool, i64 %ct, i64 64
ret i64 %cond
}
define i16 @test4b(i16 %x) {
; CHECK-LABEL: @test4b(
-; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i16 @llvm.cttz.i16(i16 %x, i1 false)
-; CHECK-NEXT: ret i16 [[VAR]]
-entry:
- %0 = tail call i16 @llvm.cttz.i16(i16 %x, i1 true)
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i16 @llvm.cttz.i16(i16 [[X:%.*]], i1 false), !range !0
+; CHECK-NEXT: ret i16 [[TMP1]]
+;
+ %ct = tail call i16 @llvm.cttz.i16(i16 %x, i1 true)
%tobool = icmp eq i16 %x, 0
- %cond = select i1 %tobool, i16 16, i16 %0
+ %cond = select i1 %tobool, i16 16, i16 %ct
ret i16 %cond
}
define i32 @test5b(i32 %x) {
; CHECK-LABEL: @test5b(
-; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i32 @llvm.cttz.i32(i32 %x, i1 false)
-; CHECK-NEXT: ret i32 [[VAR]]
+; CHECK-NEXT: entry:
+; CHECK-NEXT: [[TMP0:%.*]] = tail call i32 @llvm.cttz.i32(i32 [[X:%.*]], i1 false), !range !1
+; CHECK-NEXT: ret i32 [[TMP0]]
+;
entry:
- %0 = tail call i32 @llvm.cttz.i32(i32 %x, i1 true)
+ %ct = tail call i32 @llvm.cttz.i32(i32 %x, i1 true)
%tobool = icmp eq i32 %x, 0
- %cond = select i1 %tobool, i32 32, i32 %0
+ %cond = select i1 %tobool, i32 32, i32 %ct
ret i32 %cond
}
define i64 @test6b(i64 %x) {
; CHECK-LABEL: @test6b(
-; CHECK: [[VAR:%[a-zA-Z0-9]+]] = tail call i64 @llvm.cttz.i64(i64 %x, i1 false)
-; CHECK-NEXT: ret i64 [[VAR]]
-entry:
- %0 = tail call i64 @llvm.cttz.i64(i64 %x, i1 true)
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i64 @llvm.cttz.i64(i64 [[X:%.*]], i1 false), !range !2
+; CHECK-NEXT: ret i64 [[TMP1]]
+;
+ %ct = tail call i64 @llvm.cttz.i64(i64 %x, i1 true)
%tobool = icmp eq i64 %x, 0
- %cond = select i1 %tobool, i64 64, i64 %0
+ %cond = select i1 %tobool, i64 64, i64 %ct
ret i64 %cond
}
define i32 @test1c(i16 %x) {
; CHECK-LABEL: @test1c(
-; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i16 @llvm.cttz.i16(i16 %x, i1 false)
-; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = zext i16 [[VAR1]] to i32
-; CHECK-NEXT: ret i32 [[VAR2]]
-entry:
- %0 = tail call i16 @llvm.cttz.i16(i16 %x, i1 true)
- %cast2 = zext i16 %0 to i32
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i16 @llvm.cttz.i16(i16 [[X:%.*]], i1 false), !range !0
+; CHECK-NEXT: [[TMP2:%.*]] = zext i16 [[TMP1]] to i32
+; CHECK-NEXT: ret i32 [[TMP2]]
+;
+ %ct = tail call i16 @llvm.cttz.i16(i16 %x, i1 true)
+ %cast2 = zext i16 %ct to i32
%tobool = icmp ne i16 %x, 0
%cond = select i1 %tobool, i32 %cast2, i32 16
ret i32 %cond
@@ -151,12 +154,12 @@ entry:
define i64 @test2c(i16 %x) {
; CHECK-LABEL: @test2c(
-; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i16 @llvm.cttz.i16(i16 %x, i1 false)
-; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = zext i16 [[VAR1]] to i64
-; CHECK-NEXT: ret i64 [[VAR2]]
-entry:
- %0 = tail call i16 @llvm.cttz.i16(i16 %x, i1 true)
- %conv = zext i16 %0 to i64
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i16 @llvm.cttz.i16(i16 [[X:%.*]], i1 false), !range !0
+; CHECK-NEXT: [[TMP2:%.*]] = zext i16 [[TMP1]] to i64
+; CHECK-NEXT: ret i64 [[TMP2]]
+;
+ %ct = tail call i16 @llvm.cttz.i16(i16 %x, i1 true)
+ %conv = zext i16 %ct to i64
%tobool = icmp ne i16 %x, 0
%cond = select i1 %tobool, i64 %conv, i64 16
ret i64 %cond
@@ -164,12 +167,12 @@ entry:
define i64 @test3c(i32 %x) {
; CHECK-LABEL: @test3c(
-; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i32 @llvm.cttz.i32(i32 %x, i1 false)
-; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = zext i32 [[VAR1]] to i64
-; CHECK-NEXT: ret i64 [[VAR2]]
-entry:
- %0 = tail call i32 @llvm.cttz.i32(i32 %x, i1 true)
- %conv = zext i32 %0 to i64
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.cttz.i32(i32 [[X:%.*]], i1 false), !range !1
+; CHECK-NEXT: [[TMP2:%.*]] = zext i32 [[TMP1]] to i64
+; CHECK-NEXT: ret i64 [[TMP2]]
+;
+ %ct = tail call i32 @llvm.cttz.i32(i32 %x, i1 true)
+ %conv = zext i32 %ct to i64
%tobool = icmp ne i32 %x, 0
%cond = select i1 %tobool, i64 %conv, i64 32
ret i64 %cond
@@ -177,12 +180,12 @@ entry:
define i32 @test4c(i16 %x) {
; CHECK-LABEL: @test4c(
-; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i16 @llvm.ctlz.i16(i16 %x, i1 false)
-; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = zext i16 [[VAR1]] to i32
-; CHECK-NEXT: ret i32 [[VAR2]]
-entry:
- %0 = tail call i16 @llvm.ctlz.i16(i16 %x, i1 true)
- %cast = zext i16 %0 to i32
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i16 @llvm.ctlz.i16(i16 [[X:%.*]], i1 false), !range !0
+; CHECK-NEXT: [[TMP2:%.*]] = zext i16 [[TMP1]] to i32
+; CHECK-NEXT: ret i32 [[TMP2]]
+;
+ %ct = tail call i16 @llvm.ctlz.i16(i16 %x, i1 true)
+ %cast = zext i16 %ct to i32
%tobool = icmp ne i16 %x, 0
%cond = select i1 %tobool, i32 %cast, i32 16
ret i32 %cond
@@ -190,12 +193,12 @@ entry:
define i64 @test5c(i16 %x) {
; CHECK-LABEL: @test5c(
-; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i16 @llvm.ctlz.i16(i16 %x, i1 false)
-; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = zext i16 [[VAR1]] to i64
-; CHECK-NEXT: ret i64 [[VAR2]]
-entry:
- %0 = tail call i16 @llvm.ctlz.i16(i16 %x, i1 true)
- %cast = zext i16 %0 to i64
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i16 @llvm.ctlz.i16(i16 [[X:%.*]], i1 false), !range !0
+; CHECK-NEXT: [[TMP2:%.*]] = zext i16 [[TMP1]] to i64
+; CHECK-NEXT: ret i64 [[TMP2]]
+;
+ %ct = tail call i16 @llvm.ctlz.i16(i16 %x, i1 true)
+ %cast = zext i16 %ct to i64
%tobool = icmp ne i16 %x, 0
%cond = select i1 %tobool, i64 %cast, i64 16
ret i64 %cond
@@ -203,12 +206,12 @@ entry:
define i64 @test6c(i32 %x) {
; CHECK-LABEL: @test6c(
-; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i32 @llvm.ctlz.i32(i32 %x, i1 false)
-; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = zext i32 [[VAR1]] to i64
-; CHECK-NEXT: ret i64 [[VAR2]]
-entry:
- %0 = tail call i32 @llvm.ctlz.i32(i32 %x, i1 true)
- %cast = zext i32 %0 to i64
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.ctlz.i32(i32 [[X:%.*]], i1 false), !range !1
+; CHECK-NEXT: [[TMP2:%.*]] = zext i32 [[TMP1]] to i64
+; CHECK-NEXT: ret i64 [[TMP2]]
+;
+ %ct = tail call i32 @llvm.ctlz.i32(i32 %x, i1 true)
+ %cast = zext i32 %ct to i64
%tobool = icmp ne i32 %x, 0
%cond = select i1 %tobool, i64 %cast, i64 32
ret i64 %cond
@@ -216,12 +219,12 @@ entry:
define i16 @test1d(i64 %x) {
; CHECK-LABEL: @test1d(
-; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i64 @llvm.cttz.i64(i64 %x, i1 false)
-; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = trunc i64 [[VAR1]] to i16
-; CHECK-NEXT: ret i16 [[VAR2]]
-entry:
- %0 = tail call i64 @llvm.cttz.i64(i64 %x, i1 true)
- %conv = trunc i64 %0 to i16
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i64 @llvm.cttz.i64(i64 [[X:%.*]], i1 false), !range !2
+; CHECK-NEXT: [[TMP2:%.*]] = trunc i64 [[TMP1]] to i16
+; CHECK-NEXT: ret i16 [[TMP2]]
+;
+ %ct = tail call i64 @llvm.cttz.i64(i64 %x, i1 true)
+ %conv = trunc i64 %ct to i16
%tobool = icmp ne i64 %x, 0
%cond = select i1 %tobool, i16 %conv, i16 64
ret i16 %cond
@@ -229,12 +232,12 @@ entry:
define i32 @test2d(i64 %x) {
; CHECK-LABEL: @test2d(
-; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i64 @llvm.cttz.i64(i64 %x, i1 false)
-; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = trunc i64 [[VAR1]] to i32
-; CHECK-NEXT: ret i32 [[VAR2]]
-entry:
- %0 = tail call i64 @llvm.cttz.i64(i64 %x, i1 true)
- %cast = trunc i64 %0 to i32
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i64 @llvm.cttz.i64(i64 [[X:%.*]], i1 false), !range !2
+; CHECK-NEXT: [[TMP2:%.*]] = trunc i64 [[TMP1]] to i32
+; CHECK-NEXT: ret i32 [[TMP2]]
+;
+ %ct = tail call i64 @llvm.cttz.i64(i64 %x, i1 true)
+ %cast = trunc i64 %ct to i32
%tobool = icmp ne i64 %x, 0
%cond = select i1 %tobool, i32 %cast, i32 64
ret i32 %cond
@@ -242,12 +245,12 @@ entry:
define i16 @test3d(i32 %x) {
; CHECK-LABEL: @test3d(
-; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i32 @llvm.cttz.i32(i32 %x, i1 false)
-; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = trunc i32 [[VAR1]] to i16
-; CHECK-NEXT: ret i16 [[VAR2]]
-entry:
- %0 = tail call i32 @llvm.cttz.i32(i32 %x, i1 true)
- %cast = trunc i32 %0 to i16
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.cttz.i32(i32 [[X:%.*]], i1 false), !range !1
+; CHECK-NEXT: [[TMP2:%.*]] = trunc i32 [[TMP1]] to i16
+; CHECK-NEXT: ret i16 [[TMP2]]
+;
+ %ct = tail call i32 @llvm.cttz.i32(i32 %x, i1 true)
+ %cast = trunc i32 %ct to i16
%tobool = icmp ne i32 %x, 0
%cond = select i1 %tobool, i16 %cast, i16 32
ret i16 %cond
@@ -255,12 +258,12 @@ entry:
define i16 @test4d(i64 %x) {
; CHECK-LABEL: @test4d(
-; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i64 @llvm.ctlz.i64(i64 %x, i1 false)
-; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = trunc i64 [[VAR1]] to i16
-; CHECK-NEXT: ret i16 [[VAR2]]
-entry:
- %0 = tail call i64 @llvm.ctlz.i64(i64 %x, i1 true)
- %cast = trunc i64 %0 to i16
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i64 @llvm.ctlz.i64(i64 [[X:%.*]], i1 false), !range !2
+; CHECK-NEXT: [[TMP2:%.*]] = trunc i64 [[TMP1]] to i16
+; CHECK-NEXT: ret i16 [[TMP2]]
+;
+ %ct = tail call i64 @llvm.ctlz.i64(i64 %x, i1 true)
+ %cast = trunc i64 %ct to i16
%tobool = icmp ne i64 %x, 0
%cond = select i1 %tobool, i16 %cast, i16 64
ret i16 %cond
@@ -268,12 +271,12 @@ entry:
define i32 @test5d(i64 %x) {
; CHECK-LABEL: @test5d(
-; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i64 @llvm.ctlz.i64(i64 %x, i1 false)
-; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = trunc i64 [[VAR1]] to i32
-; CHECK-NEXT: ret i32 [[VAR2]]
-entry:
- %0 = tail call i64 @llvm.ctlz.i64(i64 %x, i1 true)
- %cast = trunc i64 %0 to i32
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i64 @llvm.ctlz.i64(i64 [[X:%.*]], i1 false), !range !2
+; CHECK-NEXT: [[TMP2:%.*]] = trunc i64 [[TMP1]] to i32
+; CHECK-NEXT: ret i32 [[TMP2]]
+;
+ %ct = tail call i64 @llvm.ctlz.i64(i64 %x, i1 true)
+ %cast = trunc i64 %ct to i32
%tobool = icmp ne i64 %x, 0
%cond = select i1 %tobool, i32 %cast, i32 64
ret i32 %cond
@@ -281,12 +284,12 @@ entry:
define i16 @test6d(i32 %x) {
; CHECK-LABEL: @test6d(
-; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i32 @llvm.ctlz.i32(i32 %x, i1 false)
-; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = trunc i32 [[VAR1]] to i16
-; CHECK-NEXT: ret i16 [[VAR2]]
-entry:
- %0 = tail call i32 @llvm.ctlz.i32(i32 %x, i1 true)
- %cast = trunc i32 %0 to i16
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.ctlz.i32(i32 [[X:%.*]], i1 false), !range !1
+; CHECK-NEXT: [[TMP2:%.*]] = trunc i32 [[TMP1]] to i16
+; CHECK-NEXT: ret i16 [[TMP2]]
+;
+ %ct = tail call i32 @llvm.ctlz.i32(i32 %x, i1 true)
+ %cast = trunc i32 %ct to i16
%tobool = icmp ne i32 %x, 0
%cond = select i1 %tobool, i16 %cast, i16 32
ret i16 %cond
@@ -294,12 +297,12 @@ entry:
define i64 @select_bug1(i32 %x) {
; CHECK-LABEL: @select_bug1(
-; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i32 @llvm.cttz.i32(i32 %x, i1 false)
-; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = zext i32 [[VAR1]] to i64
-; CHECK-NEXT: ret i64 [[VAR2]]
-entry:
- %0 = tail call i32 @llvm.cttz.i32(i32 %x, i1 false)
- %conv = zext i32 %0 to i64
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.cttz.i32(i32 [[X:%.*]], i1 false), !range !1
+; CHECK-NEXT: [[TMP2:%.*]] = zext i32 [[TMP1]] to i64
+; CHECK-NEXT: ret i64 [[TMP2]]
+;
+ %ct = tail call i32 @llvm.cttz.i32(i32 %x, i1 false)
+ %conv = zext i32 %ct to i64
%tobool = icmp ne i32 %x, 0
%cond = select i1 %tobool, i64 %conv, i64 32
ret i64 %cond
@@ -307,12 +310,12 @@ entry:
define i16 @select_bug2(i32 %x) {
; CHECK-LABEL: @select_bug2(
-; CHECK: [[VAR1:%[a-zA-Z0-9]+]] = tail call i32 @llvm.cttz.i32(i32 %x, i1 false)
-; CHECK-NEXT: [[VAR2:%[a-zA-Z0-9]+]] = trunc i32 [[VAR1]] to i16
-; CHECK-NEXT: ret i16 [[VAR2]]
-entry:
- %0 = tail call i32 @llvm.cttz.i32(i32 %x, i1 false)
- %conv = trunc i32 %0 to i16
+; CHECK-NEXT: [[TMP1:%.*]] = tail call i32 @llvm.cttz.i32(i32 [[X:%.*]], i1 false), !range !1
+; CHECK-NEXT: [[TMP2:%.*]] = trunc i32 [[TMP1]] to i16
+; CHECK-NEXT: ret i16 [[TMP2]]
+;
+ %ct = tail call i32 @llvm.cttz.i32(i32 %x, i1 false)
+ %conv = trunc i32 %ct to i16
%tobool = icmp ne i32 %x, 0
%cond = select i1 %tobool, i16 %conv, i16 32
ret i16 %cond
@@ -323,9 +326,9 @@ define i128 @test7(i128 %x) {
; CHECK-NEXT: [[TMP1:%.*]] = tail call i128 @llvm.ctlz.i128(i128 [[X:%.*]], i1 false), !range !3
; CHECK-NEXT: ret i128 [[TMP1]]
;
- %1 = tail call i128 @llvm.ctlz.i128(i128 %x, i1 true)
+ %ct = tail call i128 @llvm.ctlz.i128(i128 %x, i1 true)
%tobool = icmp ne i128 %x, 0
- %cond = select i1 %tobool, i128 %1, i128 128
+ %cond = select i1 %tobool, i128 %ct, i128 128
ret i128 %cond
}
@@ -334,9 +337,9 @@ define i128 @test8(i128 %x) {
; CHECK-NEXT: [[TMP1:%.*]] = tail call i128 @llvm.cttz.i128(i128 [[X:%.*]], i1 false), !range !3
; CHECK-NEXT: ret i128 [[TMP1]]
;
- %1 = tail call i128 @llvm.cttz.i128(i128 %x, i1 true)
+ %ct = tail call i128 @llvm.cttz.i128(i128 %x, i1 true)
%tobool = icmp ne i128 %x, 0
- %cond = select i1 %tobool, i128 %1, i128 128
+ %cond = select i1 %tobool, i128 %ct, i128 128
ret i128 %cond
}
More information about the llvm-commits
mailing list