diff options
Diffstat (limited to 'llvm/test/CodeGen/ARM/shifter_operand.ll')
| -rw-r--r-- | llvm/test/CodeGen/ARM/shifter_operand.ll | 25 |
1 files changed, 14 insertions, 11 deletions
diff --git a/llvm/test/CodeGen/ARM/shifter_operand.ll b/llvm/test/CodeGen/ARM/shifter_operand.ll index 313caed7636..cae1c44a729 100644 --- a/llvm/test/CodeGen/ARM/shifter_operand.ll +++ b/llvm/test/CodeGen/ARM/shifter_operand.ll @@ -1,15 +1,18 @@ -; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep add | grep lsl -; RUN: llvm-upgrade < %s | llvm-as | llc -march=arm | grep bic | grep asr +; RUN: llvm-as < %s | llc -march=arm | grep add | grep lsl +; RUN: llvm-as < %s | llc -march=arm | grep bic | grep asr -int %test1(int %X, int %Y, ubyte %sh) { - %A = shl int %Y, ubyte %sh - %B = add int %X, %A - ret int %B + +define i32 @test1(i32 %X, i32 %Y, i8 %sh) { + %shift.upgrd.1 = zext i8 %sh to i32 ; <i32> [#uses=1] + %A = shl i32 %Y, %shift.upgrd.1 ; <i32> [#uses=1] + %B = add i32 %X, %A ; <i32> [#uses=1] + ret i32 %B } -int %test2(int %X, int %Y, ubyte %sh) { - %A = shr int %Y, ubyte %sh - %B = xor int %A, -1 - %C = and int %X, %B - ret int %C +define i32 @test2(i32 %X, i32 %Y, i8 %sh) { + %shift.upgrd.2 = zext i8 %sh to i32 ; <i32> [#uses=1] + %A = ashr i32 %Y, %shift.upgrd.2 ; <i32> [#uses=1] + %B = xor i32 %A, -1 ; <i32> [#uses=1] + %C = and i32 %X, %B ; <i32> [#uses=1] + ret i32 %C } |

