blob: 592e25bae331a58f1afafe80ce4faab8bc11cd83 [file] [log] [blame]
Dan Gohmanf17a25c2007-07-18 16:29:46 +00001; bswap should be constant folded when it is passed a constant argument
2
Tanya Lattner632e88a2008-02-21 07:42:26 +00003; RUN: llvm-as < %s | llc -march=x86 | \
Dan Gohman8c89a502007-08-15 13:36:28 +00004; RUN: grep bswapl | count 3
Tanya Lattner632e88a2008-02-21 07:42:26 +00005; RUN: llvm-as < %s | llc -march=x86 | grep rolw | count 1
Dan Gohmanf17a25c2007-07-18 16:29:46 +00006
Tanya Lattner632e88a2008-02-21 07:42:26 +00007declare i16 @llvm.bswap.i16(i16)
Dan Gohmanf17a25c2007-07-18 16:29:46 +00008
Tanya Lattner632e88a2008-02-21 07:42:26 +00009declare i32 @llvm.bswap.i32(i32)
10
11declare i64 @llvm.bswap.i64(i64)
12
13define i16 @W(i16 %A) {
14 %Z = call i16 @llvm.bswap.i16( i16 %A ) ; <i16> [#uses=1]
15 ret i16 %Z
Dan Gohmanf17a25c2007-07-18 16:29:46 +000016}
17
Tanya Lattner632e88a2008-02-21 07:42:26 +000018define i32 @X(i32 %A) {
19 %Z = call i32 @llvm.bswap.i32( i32 %A ) ; <i32> [#uses=1]
20 ret i32 %Z
Dan Gohmanf17a25c2007-07-18 16:29:46 +000021}
22
Tanya Lattner632e88a2008-02-21 07:42:26 +000023define i64 @Y(i64 %A) {
24 %Z = call i64 @llvm.bswap.i64( i64 %A ) ; <i64> [#uses=1]
25 ret i64 %Z
Dan Gohmanf17a25c2007-07-18 16:29:46 +000026}
Tanya Lattner632e88a2008-02-21 07:42:26 +000027