Add a triple to switch.ll test.
[oota-llvm.git] / test / CodeGen / X86 / 2006-05-08-InstrSched.ll
index fd35f9f5cce7979d89f5f4db38e398714bd8e76d..cd46ecfef525901275c16233922a973fff99a3b9 100644 (file)
@@ -1,23 +1,25 @@
-; RUN: llvm-upgrade < %s | llvm-as | \
-; RUN:   llc -march=x86 -relocation-model=static | not grep {subl.*%esp}
+; RUN: llc < %s -march=x86 -relocation-model=static | not grep "subl.*%esp"
 
-%A = external global ushort*
-%B = external global uint
-%C = external global uint
+@A = external global i16*              ; <i16**> [#uses=1]
+@B = external global i32               ; <i32*> [#uses=1]
+@C = external global i32               ; <i32*> [#uses=2]
 
-void %test() {
-       %tmp = load ushort** %A
-       %tmp1 = getelementptr ushort* %tmp, int 1
-       %tmp = load ushort* %tmp1
-       %tmp3 = cast ushort %tmp to uint
-       %tmp = load uint* %B
-       %tmp4 = and uint %tmp, 16
-       %tmp5 = load uint* %C
-       %tmp6 = cast uint %tmp4 to ubyte
-       %tmp7 = shl uint %tmp5, ubyte %tmp6
-       %tmp9 = xor ubyte %tmp6, 16
-       %tmp11 = shr uint %tmp3, ubyte %tmp9
-       %tmp12 = or uint %tmp11, %tmp7
-       store uint %tmp12, uint* %C
+define void @test() {
+       %tmp = load i16*, i16** @A              ; <i16*> [#uses=1]
+       %tmp1 = getelementptr i16, i16* %tmp, i32 1             ; <i16*> [#uses=1]
+       %tmp.upgrd.1 = load i16, i16* %tmp1             ; <i16> [#uses=1]
+       %tmp3 = zext i16 %tmp.upgrd.1 to i32            ; <i32> [#uses=1]
+       %tmp.upgrd.2 = load i32, i32* @B                ; <i32> [#uses=1]
+       %tmp4 = and i32 %tmp.upgrd.2, 16                ; <i32> [#uses=1]
+       %tmp5 = load i32, i32* @C               ; <i32> [#uses=1]
+       %tmp6 = trunc i32 %tmp4 to i8           ; <i8> [#uses=2]
+       %shift.upgrd.3 = zext i8 %tmp6 to i32           ; <i32> [#uses=1]
+       %tmp7 = shl i32 %tmp5, %shift.upgrd.3           ; <i32> [#uses=1]
+       %tmp9 = xor i8 %tmp6, 16                ; <i8> [#uses=1]
+       %shift.upgrd.4 = zext i8 %tmp9 to i32           ; <i32> [#uses=1]
+       %tmp11 = lshr i32 %tmp3, %shift.upgrd.4         ; <i32> [#uses=1]
+       %tmp12 = or i32 %tmp11, %tmp7           ; <i32> [#uses=1]
+       store i32 %tmp12, i32* @C
        ret void
 }
+