diff options
author | Eli Friedman <eli.friedman@gmail.com> | 2011-05-25 23:49:02 +0000 |
---|---|---|
committer | Eli Friedman <eli.friedman@gmail.com> | 2011-05-25 23:49:02 +0000 |
commit | c70355195cfffc79108eaa4a190095a3050b144a (patch) | |
tree | d965930f293314850406ce87f5b63eeb68cbda47 /llvm/test/CodeGen/X86/fast-isel-i1.ll | |
parent | fa63d3096da9057f03645233057dcfeb0e03d2f0 (diff) | |
download | bcm5719-llvm-c70355195cfffc79108eaa4a190095a3050b144a.tar.gz bcm5719-llvm-c70355195cfffc79108eaa4a190095a3050b144a.zip |
Rewrite fast-isel integer cast handling to handle more cases, and to be simpler and more consistent.
The practical effects here are that x86-64 fast-isel can now handle trunc from i8 to i1, and ARM fast-isel can handle many more constructs involving integers narrower than 32 bits (including loads, stores, and many integer casts).
rdar://9437928 .
llvm-svn: 132099
Diffstat (limited to 'llvm/test/CodeGen/X86/fast-isel-i1.ll')
-rw-r--r-- | llvm/test/CodeGen/X86/fast-isel-i1.ll | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/llvm/test/CodeGen/X86/fast-isel-i1.ll b/llvm/test/CodeGen/X86/fast-isel-i1.ll index 5d572c1de50..8e0196888f2 100644 --- a/llvm/test/CodeGen/X86/fast-isel-i1.ll +++ b/llvm/test/CodeGen/X86/fast-isel-i1.ll @@ -1,14 +1,15 @@ -; RUN: llc < %s -march=x86 -fast-isel | FileCheck %s +; RUN: llc < %s -march=x86 -fast-isel -fast-isel-abort | FileCheck %s +; RUN: llc < %s -march=x86-64 -fast-isel -fast-isel-abort | FileCheck %s -declare i64 @test1a(i64) +declare i32 @test1a(i32) -define i32 @test1(i64 %x) nounwind { +define i32 @test1(i32 %x) nounwind { ; CHECK: test1: ; CHECK: andb $1, % - %y = add i64 %x, -3 - %t = call i64 @test1a(i64 %y) - %s = mul i64 %t, 77 - %z = trunc i64 %s to i1 + %y = add i32 %x, -3 + %t = call i32 @test1a(i32 %y) + %s = mul i32 %t, 77 + %z = trunc i32 %s to i1 br label %next next: ; preds = %0 |