mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-12-29 10:32:47 +00:00
19 lines
724 B
LLVM
19 lines
724 B
LLVM
|
; 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
|
||
|
}
|