diff options
author | Evan Cheng <evan.cheng@apple.com> | 2011-09-06 18:52:20 +0000 |
---|---|---|
committer | Evan Cheng <evan.cheng@apple.com> | 2011-09-06 18:52:20 +0000 |
commit | 4a51708448e8958d8d1a375c055f1b98c8e20926 (patch) | |
tree | a7e1c8d3d5e7ef09e6095ffd7630d8a3e4fb944f /test | |
parent | 2048c379dd9e080c3e1bb0c93636da9564d8772c (diff) | |
download | external_llvm-4a51708448e8958d8d1a375c055f1b98c8e20926.zip external_llvm-4a51708448e8958d8d1a375c055f1b98c8e20926.tar.gz external_llvm-4a51708448e8958d8d1a375c055f1b98c8e20926.tar.bz2 |
Fix fall outs from my recent change on how carry bit is modeled during isel.
Now the 'S' instructions, e.g. ADDS, treat S bit as optional operand as well.
Also fix isel hook to correctly set the optional operand.
rdar://10073745
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@139157 91177308-0d34-0410-b5e6-96231b3b80d8
Diffstat (limited to 'test')
-rw-r--r-- | test/CodeGen/ARM/carry.ll | 10 |
1 files changed, 10 insertions, 0 deletions
diff --git a/test/CodeGen/ARM/carry.ll b/test/CodeGen/ARM/carry.ll index 06b459e..f84774d 100644 --- a/test/CodeGen/ARM/carry.ll +++ b/test/CodeGen/ARM/carry.ll @@ -35,3 +35,13 @@ entry: %dw = add i64 %ch, %bw ret i64 %dw } + +; rdar://10073745 +define i64 @f4(i64 %x) nounwind readnone { +entry: +; CHECK: f4: +; CHECK: rsbs r +; CHECK: rsc r + %0 = sub nsw i64 0, %x + ret i64 %0 +} |