blob: 4235edebda8602ebcb905c95f6ab8870eee1abcd [file] [log] [blame]
Chris Lattner2cfd1282005-08-21 16:37:36 +00001; RUN: llvm-as < %s | llc -march=x86 -x86-asm-syntax=intel | grep sh[lr]d | wc -l | grep 5
Chris Lattner7c79de72005-01-19 06:30:36 +00002
3long %test1(long %X, ubyte %C) {
4 %Y = shl long %X, ubyte %C
5 ret long %Y
6}
7long %test2(long %X, ubyte %C) {
8 %Y = shr long %X, ubyte %C
9 ret long %Y
10}
11ulong %test3(ulong %X, ubyte %C) {
12 %Y = shr ulong %X, ubyte %C
13 ret ulong %Y
14}
15
16uint %test4(uint %A, uint %B, ubyte %C) {
17 %X = shl uint %A, ubyte %C
18 %Cv = sub ubyte 32, %C
19 %Y = shr uint %B, ubyte %Cv
20 %Z = or uint %Y, %X
21 ret uint %Z
22}
Chris Lattner39d63962005-01-19 07:37:01 +000023
24ushort %test5(ushort %A, ushort %B, ubyte %C) {
25 %X = shl ushort %A, ubyte %C
26 %Cv = sub ubyte 16, %C
27 %Y = shr ushort %B, ubyte %Cv
28 %Z = or ushort %Y, %X
29 ret ushort %Z
30}