diff options
author | NAKAMURA Takumi <geek4civic@gmail.com> | 2014-03-09 11:01:07 +0000 |
---|---|---|
committer | NAKAMURA Takumi <geek4civic@gmail.com> | 2014-03-09 11:01:07 +0000 |
commit | e086782817441908f03e9f4c6fb2008ec414a23e (patch) | |
tree | aebb8b4960261224eef3be18af29b47cb5cdd235 /test | |
parent | feb0113a1eca4021e59e62be15b3ec36fe31030b (diff) | |
download | llvm-e086782817441908f03e9f4c6fb2008ec414a23e.tar.gz llvm-e086782817441908f03e9f4c6fb2008ec414a23e.tar.bz2 llvm-e086782817441908f03e9f4c6fb2008ec414a23e.tar.xz |
Revert r203230, "CodeGenPrep: sink extends of illegal types into use block."
It choked i686 stage2.
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@203386 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/X86/mul128_sext_loop.ll | 32 | ||||
-rw-r--r-- | test/Transforms/CodeGenPrepare/X86/extend-sink-hoist.ll | 46 |
2 files changed, 0 insertions, 78 deletions
diff --git a/test/CodeGen/X86/mul128_sext_loop.ll b/test/CodeGen/X86/mul128_sext_loop.ll deleted file mode 100644 index a516f03cbc..0000000000 --- a/test/CodeGen/X86/mul128_sext_loop.ll +++ /dev/null @@ -1,32 +0,0 @@ -; RUN: llc < %s -march=x86-64 | FileCheck %s - -define void @test(i64* nocapture %arr, i64 %arrsize, i64 %factor) nounwind uwtable { - %1 = icmp sgt i64 %arrsize, 0 - br i1 %1, label %.lr.ph, label %._crit_edge - -.lr.ph: ; preds = %0 - %2 = sext i64 %factor to i128 - br label %3 - -; <label>:3 ; preds = %3, %.lr.ph -; CHECK-NOT: mul -; CHECK: imulq -; CHECK-NOT: mul - %carry.02 = phi i128 [ 0, %.lr.ph ], [ %10, %3 ] - %i.01 = phi i64 [ 0, %.lr.ph ], [ %11, %3 ] - %4 = getelementptr inbounds i64* %arr, i64 %i.01 - %5 = load i64* %4, align 8 - %6 = sext i64 %5 to i128 - %7 = mul nsw i128 %6, %2 - %8 = add nsw i128 %7, %carry.02 - %.tr = trunc i128 %8 to i64 - %9 = and i64 %.tr, 9223372036854775807 - store i64 %9, i64* %4, align 8 - %10 = ashr i128 %8, 63 - %11 = add nsw i64 %i.01, 1 - %exitcond = icmp eq i64 %11, %arrsize - br i1 %exitcond, label %._crit_edge, label %3 - -._crit_edge: ; preds = %3, %0 - ret void -} diff --git a/test/Transforms/CodeGenPrepare/X86/extend-sink-hoist.ll b/test/Transforms/CodeGenPrepare/X86/extend-sink-hoist.ll deleted file mode 100644 index a58e62c067..0000000000 --- a/test/Transforms/CodeGenPrepare/X86/extend-sink-hoist.ll +++ /dev/null @@ -1,46 +0,0 @@ -; RUN: opt -codegenprepare -disable-cgp-branch-opts -S < %s | FileCheck %s -target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128" -target triple = "x86_64-unknown-linux-gnu" - -; The first cast should be sunk into block2, in order that the -; instruction selector can form an efficient -; i64 * i64 -> i128 multiplication. -define i128 @sink(i64* %mem1, i64* %mem2) { -; CHECK-LABEL: block1: -; CHECK-NEXT: load -block1: - %l1 = load i64* %mem1 - %s1 = sext i64 %l1 to i128 - br label %block2 - -; CHECK-LABEL: block2: -; CHECK-NEXT: sext -; CHECK-NEXT: load -; CHECK-NEXT: sext -block2: - %l2 = load i64* %mem2 - %s2 = sext i64 %l2 to i128 - %res = mul i128 %s1, %s2 - ret i128 %res -} - -; The first cast should be hoisted into block1, in order that the -; instruction selector can form an extend-load. -define i64 @hoist(i32* %mem1, i32* %mem2) { -; CHECK-LABEL: block1: -; CHECK-NEXT: load -; CHECK-NEXT: sext -block1: - %l1 = load i32* %mem1 - br label %block2 - -; CHECK-LABEL: block2: -; CHECK-NEXT: load -; CHECK-NEXT: sext -block2: - %s1 = sext i32 %l1 to i64 - %l2 = load i32* %mem2 - %s2 = sext i32 %l2 to i64 - %res = mul i64 %s1, %s2 - ret i64 %res -} |