diff options
| author | Evan Cheng <evan.cheng@apple.com> | 2012-05-18 01:33:51 +0000 |
|---|---|---|
| committer | Evan Cheng <evan.cheng@apple.com> | 2012-05-18 01:33:51 +0000 |
| commit | 22d405f57b62d0eee7a994f074859e399583f7f1 (patch) | |
| tree | 1c3e08f3a2e1b9f1ccd32df97242514b2b155ee7 /llvm/test/CodeGen/X86/2012-05-17-TwoAddressBug.ll | |
| parent | 46d01605ee7ae986e4d6f47aa88224e7e8b7146c (diff) | |
| download | bcm5719-llvm-22d405f57b62d0eee7a994f074859e399583f7f1.tar.gz bcm5719-llvm-22d405f57b62d0eee7a994f074859e399583f7f1.zip | |
Teach two-address pass to update the "source" map so it doesn't perform a
non-profitable commute using outdated info. The test case would still fail
because of poor pre-RA schedule. That will be fixed by MI scheduler.
rdar://11472010
llvm-svn: 157038
Diffstat (limited to 'llvm/test/CodeGen/X86/2012-05-17-TwoAddressBug.ll')
| -rw-r--r-- | llvm/test/CodeGen/X86/2012-05-17-TwoAddressBug.ll | 16 |
1 files changed, 16 insertions, 0 deletions
diff --git a/llvm/test/CodeGen/X86/2012-05-17-TwoAddressBug.ll b/llvm/test/CodeGen/X86/2012-05-17-TwoAddressBug.ll new file mode 100644 index 00000000000..171c3f18dc8 --- /dev/null +++ b/llvm/test/CodeGen/X86/2012-05-17-TwoAddressBug.ll @@ -0,0 +1,16 @@ +; RUN: llc < %s -mtriple=x86_64-apple-macosx -pre-RA-sched=source | FileCheck %s + +; Teach two-address pass to update the "source" map so it doesn't perform a +; non-profitable commute using outdated info. The test case would still fail +; because of poor pre-RA schedule. That will be fixed by MI scheduler. +; rdar://11472010 +define i32 @t(i32 %mask) nounwind readnone ssp { +entry: +; CHECK: t: +; CHECK-NOT: mov + %sub = add i32 %mask, -65535 + %shr = lshr i32 %sub, 23 + %and = and i32 %mask, 1 + %add = add i32 %shr, %and + ret i32 %add +} |

