blob: 62c20c354eb2bbe339d3930b40715a201165723d [file] [log] [blame]
Nate Begemand88fc032006-01-14 03:14:10 +00001; bswap should be constant folded when it is passed a constant argument
2
Reid Spencer69ccadd2006-12-02 04:23:10 +00003; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | grep bswapl | wc -l | grep 3 &&
4; RUN: llvm-upgrade < %s | llvm-as | llc -march=x86 | grep rolw | wc -l | grep 1
Nate Begemand88fc032006-01-14 03:14:10 +00005
Reid Spencera3c533a2007-04-01 07:36:28 +00006declare ushort %llvm.bswap.i16.i16(ushort)
7declare uint %llvm.bswap.i32.i32(uint)
8declare ulong %llvm.bswap.i64.i64(ulong)
Nate Begemand88fc032006-01-14 03:14:10 +00009
10ushort %W(ushort %A) {
Reid Spencera3c533a2007-04-01 07:36:28 +000011 %Z = call ushort %llvm.bswap.i16.i16(ushort %A)
Nate Begemand88fc032006-01-14 03:14:10 +000012 ret ushort %Z
13}
14
15uint %X(uint %A) {
Reid Spencera3c533a2007-04-01 07:36:28 +000016 %Z = call uint %llvm.bswap.i32.i32(uint %A)
Nate Begemand88fc032006-01-14 03:14:10 +000017 ret uint %Z
18}
19
20ulong %Y(ulong %A) {
Reid Spencera3c533a2007-04-01 07:36:28 +000021 %Z = call ulong %llvm.bswap.i64.i64(ulong %A)
Nate Begemand88fc032006-01-14 03:14:10 +000022 ret ulong %Z
23}