Improved codegen due to Chris' live interval joining changes.
[oota-llvm.git] / test / CodeGen / X86 / 2006-05-08-InstrSched.ll
1 ; RUN: llvm-as < %s | llc -march=x86 -relocation-model=static | not grep 'subl.*%esp'
2
3 %A = external global ushort*
4 %B = external global uint
5 %C = external global uint
6
7 void %test() {
8         %tmp = load ushort** %A
9         %tmp1 = getelementptr ushort* %tmp, int 1
10         %tmp = load ushort* %tmp1
11         %tmp3 = cast ushort %tmp to uint
12         %tmp = load uint* %B
13         %tmp4 = and uint %tmp, 16
14         %tmp5 = load uint* %C
15         %tmp6 = cast uint %tmp4 to ubyte
16         %tmp7 = shl uint %tmp5, ubyte %tmp6
17         %tmp9 = xor ubyte %tmp6, 16
18         %tmp11 = shr uint %tmp3, ubyte %tmp9
19         %tmp12 = or uint %tmp11, %tmp7
20         store uint %tmp12, uint* %C
21         ret void
22 }