summaryrefslogtreecommitdiff
path: root/test/CodeGen/X86/trunc-to-bool.ll
diff options
context:
space:
mode:
authorReid Spencer <rspencer@reidspencer.com>2006-12-31 06:02:00 +0000
committerReid Spencer <rspencer@reidspencer.com>2006-12-31 06:02:00 +0000
commiteacb7020ec7b0a6a0078f1be7bfd77bf6fe1ff06 (patch)
treeac1b0bfa8c340bb02ac25f991a1ee28b216de458 /test/CodeGen/X86/trunc-to-bool.ll
parent47857812e29324a9d1560796a05b53d3a9217fd9 (diff)
downloadllvm-eacb7020ec7b0a6a0078f1be7bfd77bf6fe1ff06.tar.gz
llvm-eacb7020ec7b0a6a0078f1be7bfd77bf6fe1ff06.tar.bz2
llvm-eacb7020ec7b0a6a0078f1be7bfd77bf6fe1ff06.tar.xz
For PR950:
Update the test suite to accommodate the change from signed integer types to signless integer types. The changes were of only a few kinds: 1. Make sure llvm-upgrade is run on the source which does the bulk of the changes automatically. 2. Change things like "grep 'int'" to "grep 'i32'" 3. In several tests bitcasting caused the same name to be reused in the same type plane. These had to be manually fixed. The fix was (generally) to leave the bitcast and provide the instruction with a new name. This should not affect the semantics of the test. In a few cases, the bitcasts were known to be superfluous and irrelevant to the test case so they were removed. 4. One test case uses a bytecode file which needed to be updated to the latest bytecode format. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@32789 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen/X86/trunc-to-bool.ll')
-rw-r--r--test/CodeGen/X86/trunc-to-bool.ll51
1 files changed, 27 insertions, 24 deletions
diff --git a/test/CodeGen/X86/trunc-to-bool.ll b/test/CodeGen/X86/trunc-to-bool.ll
index 3e00975b24..f4fa9c6503 100644
--- a/test/CodeGen/X86/trunc-to-bool.ll
+++ b/test/CodeGen/X86/trunc-to-bool.ll
@@ -1,19 +1,21 @@
; An integer truncation to bool should be done with an and instruction to make
; sure only the LSBit survives. Test that this is the case both for a returned
; value and as the operand of a branch.
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 &&
-; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | grep '\(and\)\|\(test.*\$1\)' | wc -l | grep 6
-bool %test1(int %X) {
- %Y = trunc int %X to bool
+; RUN: llvm-as < %s | llc -march=x86 &&
+; RUN: llvm-as < %s | llc -march=x86 | grep '\(and\)\|\(test.*\$1\)' | \
+; RUN: wc -l | grep 6
+
+define bool @zext %test1(i32 %X) {
+ %Y = trunc i32 %X to bool
ret bool %Y
}
-bool %test2(int %val, int %mask) {
+define bool %test2(i32 %val, i32 %mask) {
entry:
- %mask = trunc int %mask to ubyte
- %shifted = ashr int %val, ubyte %mask
- %anded = and int %shifted, 1
- %trunced = trunc int %anded to bool
+ %mask = trunc i32 %mask to i8
+ %shifted = ashr i32 %val, i8 %mask
+ %anded = and i32 %shifted, 1
+ %trunced = trunc i32 %anded to bool
br bool %trunced, label %ret_true, label %ret_false
ret_true:
ret bool true
@@ -21,39 +23,40 @@ ret_false:
ret bool false
}
-int %test3(sbyte* %ptr) {
- %val = load sbyte* %ptr
- %tmp = trunc sbyte %val to bool ; %<bool> [#uses=1]
+define i32 %test3(i8* %ptr) {
+ %val = load i8* %ptr
+ %tmp = trunc i8 %val to bool
br bool %tmp, label %cond_true, label %cond_false
cond_true:
- ret int 21
+ ret i32 21
cond_false:
- ret int 42
+ ret i32 42
}
-int %test4(sbyte* %ptr) {
- %tmp = ptrtoint sbyte* %ptr to bool
+define i32 %test4(i8* %ptr) {
+ %tmp = ptrtoint i8* %ptr to bool
br bool %tmp, label %cond_true, label %cond_false
cond_true:
- ret int 21
+ ret i32 21
cond_false:
- ret int 42
+ ret i32 42
}
-int %test5(float %f) {
+define i32 %test5(float %f) {
%tmp = fptoui float %f to bool
br bool %tmp, label %cond_true, label %cond_false
cond_true:
- ret int 21
+ ret i32 21
cond_false:
- ret int 42
+ ret i32 42
}
-int %test6(double %d) {
+define i32 %test6(double %d) {
%tmp = fptosi double %d to bool
br bool %tmp, label %cond_true, label %cond_false
cond_true:
- ret int 21
+ ret i32 21
cond_false:
- ret int 42
+ ret i32 42
}
+