diff options
author | Reid Spencer <rspencer@reidspencer.com> | 2006-12-31 06:02:00 +0000 |
---|---|---|
committer | Reid Spencer <rspencer@reidspencer.com> | 2006-12-31 06:02:00 +0000 |
commit | eacb7020ec7b0a6a0078f1be7bfd77bf6fe1ff06 (patch) | |
tree | ac1b0bfa8c340bb02ac25f991a1ee28b216de458 /test/CodeGen/X86/trunc-to-bool.ll | |
parent | 47857812e29324a9d1560796a05b53d3a9217fd9 (diff) | |
download | external_llvm-eacb7020ec7b0a6a0078f1be7bfd77bf6fe1ff06.zip external_llvm-eacb7020ec7b0a6a0078f1be7bfd77bf6fe1ff06.tar.gz external_llvm-eacb7020ec7b0a6a0078f1be7bfd77bf6fe1ff06.tar.bz2 |
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.ll | 51 |
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 3e00975..f4fa9c6 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 } + |