diff options
author | Chris Lattner <sabre@nondot.org> | 2009-07-02 03:14:25 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2009-07-02 03:14:25 +0000 |
commit | 3b7f10a5a1cfbc6977447f4b6c724777ea793dca (patch) | |
tree | 7a903cd82f0d0638d5983ddb86ae3e09b348b4fb /test/CodeGen | |
parent | 92697b5350428e6f012fef27dbb9aedad95032e7 (diff) | |
download | external_llvm-3b7f10a5a1cfbc6977447f4b6c724777ea793dca.zip external_llvm-3b7f10a5a1cfbc6977447f4b6c724777ea793dca.tar.gz external_llvm-3b7f10a5a1cfbc6977447f4b6c724777ea793dca.tar.bz2 |
Fix yet-another bug I introduced into fastisel, this time handling
constant pool references that weren't getting properly rip-relative.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@74689 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test/CodeGen')
-rw-r--r-- | test/CodeGen/X86/fast-isel-constpool.ll | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/test/CodeGen/X86/fast-isel-constpool.ll b/test/CodeGen/X86/fast-isel-constpool.ll new file mode 100644 index 0000000..ac2595a --- /dev/null +++ b/test/CodeGen/X86/fast-isel-constpool.ll @@ -0,0 +1,17 @@ +; RUN: llvm-as < %s | llc -fast-isel | grep {LCPI1_0(%rip)} +; Make sure fast isel uses rip-relative addressing when required. +target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128" +target triple = "x86_64-apple-darwin9.0" + +define i32 @f0(double %x) nounwind { +entry: + %retval = alloca i32 ; <i32*> [#uses=2] + %x.addr = alloca double ; <double*> [#uses=2] + store double %x, double* %x.addr + %tmp = load double* %x.addr ; <double> [#uses=1] + %cmp = fcmp olt double %tmp, 8.500000e-01 ; <i1> [#uses=1] + %conv = zext i1 %cmp to i32 ; <i32> [#uses=1] + store i32 %conv, i32* %retval + %0 = load i32* %retval ; <i32> [#uses=1] + ret i32 %0 +} |