diff options
Diffstat (limited to 'test/Assembler/2007-02-01-UpgradeShift.ll')
-rw-r--r-- | test/Assembler/2007-02-01-UpgradeShift.ll | 18 |
1 files changed, 18 insertions, 0 deletions
diff --git a/test/Assembler/2007-02-01-UpgradeShift.ll b/test/Assembler/2007-02-01-UpgradeShift.ll new file mode 100644 index 0000000..0a9e3a9 --- /dev/null +++ b/test/Assembler/2007-02-01-UpgradeShift.ll @@ -0,0 +1,18 @@ +; Test that upgrading shift instructions and constant expressions works +; correctly. +; RUN: llvm-upgrade < %s | grep {ashr i32 .X, 2} +; RUN: llvm-upgrade < %s | grep {lshr i32 .X, 2} +; RUN: llvm-upgrade < %s | grep {shl i32 .X, 2} +; RUN: llvm-upgrade < %s | grep {ashr i32 .X, 6} +; RUN: llvm-upgrade < %s | grep {lshr i32 .X, 1} +; RUN: llvm-upgrade < %s | grep {shl i32 .X, 1} + +void %test(int %X) { + %A = ashr int %X, ubyte 2 + %B = lshr int %X, ubyte 2 + %C = shl int %X, ubyte 2 + %D = ashr int %X, ubyte trunc ( int shl (int 3, ubyte 1) to ubyte ) + %E = lshr int %X, ubyte trunc ( int ashr (int 3, ubyte 1) to ubyte ) + %F = shl int %X, ubyte trunc ( int lshr (int 3, ubyte 1) to ubyte ) + ret void +} |