diff options
Diffstat (limited to 'test/CodeGen/Generic/2014-02-05-OpaqueConstants.ll')
-rw-r--r-- | test/CodeGen/Generic/2014-02-05-OpaqueConstants.ll | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/test/CodeGen/Generic/2014-02-05-OpaqueConstants.ll b/test/CodeGen/Generic/2014-02-05-OpaqueConstants.ll new file mode 100644 index 0000000000..5c1cd05325 --- /dev/null +++ b/test/CodeGen/Generic/2014-02-05-OpaqueConstants.ll @@ -0,0 +1,19 @@ +; Test that opaque constants are not creating an infinite DAGCombine loop +; RUN: llc < %s +; XFAIL: r600, xcore + +@a = common global i32* null, align 8 +@c = common global i32 0, align 4 +@b = common global i32* null, align 8 + +; Function Attrs: nounwind ssp uwtable +define void @fn() { + store i32* inttoptr (i64 68719476735 to i32*), i32** @a, align 8 + %1 = load i32* @c, align 4 + %2 = sext i32 %1 to i64 + %3 = lshr i64 %2, 12 + %4 = and i64 %3, 68719476735 + %5 = getelementptr inbounds i32* null, i64 %4 + store i32* %5, i32** @b, align 8 + ret void +} |