diff options
| author | Dimitry Andric <dim@FreeBSD.org> | 2015-05-27 18:44:32 +0000 |
|---|---|---|
| committer | Dimitry Andric <dim@FreeBSD.org> | 2015-05-27 18:44:32 +0000 |
| commit | 5a5ac124e1efaf208671f01c46edb15f29ed2a0b (patch) | |
| tree | a6140557876943cdd800ee997c9317283394b22c /test/Transforms/CodeGenPrepare/X86 | |
| parent | f03b5bed27d0d2eafd68562ce14f8b5e3f1f0801 (diff) | |
Notes
Diffstat (limited to 'test/Transforms/CodeGenPrepare/X86')
3 files changed, 25 insertions, 7 deletions
diff --git a/test/Transforms/CodeGenPrepare/X86/extend-sink-hoist.ll b/test/Transforms/CodeGenPrepare/X86/extend-sink-hoist.ll index 430b99299d823..519e1ee2ce6fd 100644 --- a/test/Transforms/CodeGenPrepare/X86/extend-sink-hoist.ll +++ b/test/Transforms/CodeGenPrepare/X86/extend-sink-hoist.ll @@ -9,7 +9,7 @@ define i128 @sink(i64* %mem1, i64* %mem2) { ; CHECK-LABEL: block1: ; CHECK-NEXT: load block1: - %l1 = load i64* %mem1 + %l1 = load i64, i64* %mem1 %s1 = sext i64 %l1 to i128 br label %block2 @@ -18,7 +18,7 @@ block1: ; CHECK-NEXT: load ; CHECK-NEXT: sext block2: - %l2 = load i64* %mem2 + %l2 = load i64, i64* %mem2 %s2 = sext i64 %l2 to i128 %res = mul i128 %s1, %s2 ret i128 %res @@ -31,7 +31,7 @@ define i64 @hoist(i32* %mem1, i32* %mem2) { ; CHECK-NEXT: load ; CHECK-NEXT: sext block1: - %l1 = load i32* %mem1 + %l1 = load i32, i32* %mem1 br label %block2 ; CHECK-LABEL: block2: @@ -39,7 +39,7 @@ block1: ; CHECK-NEXT: sext block2: %s1 = sext i32 %l1 to i64 - %l2 = load i32* %mem2 + %l2 = load i32, i32* %mem2 %s2 = sext i32 %l2 to i64 %res = mul i64 %s1, %s2 ret i64 %res diff --git a/test/Transforms/CodeGenPrepare/X86/memset_chk-simplify-nobuiltin.ll b/test/Transforms/CodeGenPrepare/X86/memset_chk-simplify-nobuiltin.ll new file mode 100644 index 0000000000000..1e12c0192a956 --- /dev/null +++ b/test/Transforms/CodeGenPrepare/X86/memset_chk-simplify-nobuiltin.ll @@ -0,0 +1,18 @@ +; RUN: opt -S -disable-simplify-libcalls -codegenprepare < %s | FileCheck %s +target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128" + +; This is a workaround for PR23093: when building with -mkernel/-fno-builtin, +; we still generate fortified library calls. + +; Check that we ignore two things: +; - attribute nobuiltin +; - TLI::has (always returns false thanks to -disable-simplify-libcalls) + +; CHECK-NOT: _chk +; CHECK: call void @llvm.memset.p0i8.i64(i8* %dst, i8 0, i64 %len, i32 1, i1 false) +define void @test_nobuiltin(i8* %dst, i64 %len) { + call i8* @__memset_chk(i8* %dst, i32 0, i64 %len, i64 -1) nobuiltin + ret void +} + +declare i8* @__memset_chk(i8*, i32, i64, i64) diff --git a/test/Transforms/CodeGenPrepare/X86/sink-addrspacecast.ll b/test/Transforms/CodeGenPrepare/X86/sink-addrspacecast.ll index a985c36707a9d..c9f49b5d4f86a 100644 --- a/test/Transforms/CodeGenPrepare/X86/sink-addrspacecast.ll +++ b/test/Transforms/CodeGenPrepare/X86/sink-addrspacecast.ll @@ -8,12 +8,12 @@ target triple = "x86_64-unknown-linux-gnu" ; CHECK: add i64 %sunkaddr, 40 define void @load_cast_gep(i1 %cond, i64* %base) { entry: - %addr = getelementptr inbounds i64* %base, i64 5 + %addr = getelementptr inbounds i64, i64* %base, i64 5 %casted = addrspacecast i64* %addr to i32 addrspace(1)* br i1 %cond, label %if.then, label %fallthrough if.then: - %v = load i32 addrspace(1)* %casted, align 4 + %v = load i32, i32 addrspace(1)* %casted, align 4 br label %fallthrough fallthrough: @@ -25,7 +25,7 @@ fallthrough: define void @store_gep_cast(i1 %cond, i64* %base) { entry: %casted = addrspacecast i64* %base to i32 addrspace(1)* - %addr = getelementptr inbounds i32 addrspace(1)* %casted, i64 5 + %addr = getelementptr inbounds i32, i32 addrspace(1)* %casted, i64 5 br i1 %cond, label %if.then, label %fallthrough if.then: |
