mirror of
https://github.com/c64scene-ar/llvm-6502.git
synced 2024-09-07 01:54:50 +00:00
Update these test cases to use proper signatures for bswap which is now and overloaded intrinsic. Its name must be of the form llvm.bswap.i32.i32 since both the parameter and the result or of type "iAny". Also, the bit counting intrinsics changed to always return i32. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@35548 91177308-0d34-0410-b5e6-96231b3b80d8
24 lines
619 B
LLVM
24 lines
619 B
LLVM
; bswap should be constant folded when it is passed a constant argument
|
|
|
|
; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | grep bswapl | wc -l | grep 3 &&
|
|
; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | grep rolw | wc -l | grep 1
|
|
|
|
declare ushort %llvm.bswap.i16.i16(ushort)
|
|
declare uint %llvm.bswap.i32.i32(uint)
|
|
declare ulong %llvm.bswap.i64.i64(ulong)
|
|
|
|
ushort %W(ushort %A) {
|
|
%Z = call ushort %llvm.bswap.i16.i16(ushort %A)
|
|
ret ushort %Z
|
|
}
|
|
|
|
uint %X(uint %A) {
|
|
%Z = call uint %llvm.bswap.i32.i32(uint %A)
|
|
ret uint %Z
|
|
}
|
|
|
|
ulong %Y(ulong %A) {
|
|
%Z = call ulong %llvm.bswap.i64.i64(ulong %A)
|
|
ret ulong %Z
|
|
}
|