AVX-512: store <4 x i1> and <2 x i1> values in memory
[oota-llvm.git] / test / CodeGen / X86 / 2009-04-16-SpillerUnfold.ll
index fdb172c2f970ca6a50aa7adfa65a23b00e08d33b..1d03a1b20a34b24caeefa819f6d2c762a9cc2b48 100644 (file)
@@ -1,5 +1,9 @@
-; RUN: llvm-as < %s | llc -mtriple=x86_64-apple-darwin10.0 -relocation-model=pic -disable-fp-elim -stats |& grep {Number of modref unfolded}
-; XFAIL - 69408 removed the opportunity for this optimization to work
+; REQUIRES: asserts
+; RUN: llc < %s -mtriple=x86_64-apple-darwin10.0 -relocation-model=pic -disable-fp-elim -stats 2>&1 | FileCheck %s
+; XFAIL: *
+; 69408 removed the opportunity for this optimization to work
+
+; CHECK: {{Number of modref unfolded}}
 
        %struct.SHA512_CTX = type { [8 x i64], i64, i64, %struct.anon, i32, i32 }
        %struct.anon = type { [16 x i64] }
@@ -43,7 +47,7 @@ bb349:                ; preds = %bb349, %entry
        %23 = add i32 0, 12             ; <i32> [#uses=1]
        %24 = and i32 %23, 12           ; <i32> [#uses=1]
        %25 = zext i32 %24 to i64               ; <i64> [#uses=1]
-       %26 = getelementptr [16 x i64]* null, i64 0, i64 %25            ; <i64*> [#uses=0]
+       %26 = getelementptr [16 x i64], [16 x i64]* null, i64 0, i64 %25                ; <i64*> [#uses=0]
        %27 = add i64 0, %e.0489                ; <i64> [#uses=1]
        %28 = add i64 %27, 0            ; <i64> [#uses=1]
        %29 = add i64 %28, 0            ; <i64> [#uses=1]
@@ -63,12 +67,12 @@ bb349:              ; preds = %bb349, %entry
        %43 = or i32 0, 6               ; <i32> [#uses=1]
        %44 = and i32 %43, 14           ; <i32> [#uses=1]
        %45 = zext i32 %44 to i64               ; <i64> [#uses=1]
-       %46 = getelementptr [16 x i64]* null, i64 0, i64 %45            ; <i64*> [#uses=1]
+       %46 = getelementptr [16 x i64], [16 x i64]* null, i64 0, i64 %45                ; <i64*> [#uses=1]
        %not417 = xor i64 %42, -1               ; <i64> [#uses=1]
        %47 = and i64 %20, %not417              ; <i64> [#uses=1]
        %48 = xor i64 0, %47            ; <i64> [#uses=1]
-       %49 = getelementptr [80 x i64]* @K512, i64 0, i64 0             ; <i64*> [#uses=1]
-       %50 = load i64* %49, align 8            ; <i64> [#uses=1]
+       %49 = getelementptr [80 x i64], [80 x i64]* @K512, i64 0, i64 0         ; <i64*> [#uses=1]
+       %50 = load i64, i64* %49, align 8               ; <i64> [#uses=1]
        %51 = add i64 %48, 0            ; <i64> [#uses=1]
        %52 = add i64 %51, 0            ; <i64> [#uses=1]
        %53 = add i64 %52, 0            ; <i64> [#uses=1]
@@ -83,13 +87,13 @@ bb349:              ; preds = %bb349, %entry
        %60 = or i32 0, 7               ; <i32> [#uses=1]
        %61 = and i32 %60, 15           ; <i32> [#uses=1]
        %62 = zext i32 %61 to i64               ; <i64> [#uses=1]
-       %63 = getelementptr [16 x i64]* null, i64 0, i64 %62            ; <i64*> [#uses=2]
-       %64 = load i64* null, align 8           ; <i64> [#uses=1]
+       %63 = getelementptr [16 x i64], [16 x i64]* null, i64 0, i64 %62                ; <i64*> [#uses=2]
+       %64 = load i64, i64* null, align 8              ; <i64> [#uses=1]
        %65 = lshr i64 %64, 6           ; <i64> [#uses=1]
        %66 = xor i64 0, %65            ; <i64> [#uses=1]
        %67 = xor i64 %66, 0            ; <i64> [#uses=1]
-       %68 = load i64* %46, align 8            ; <i64> [#uses=1]
-       %69 = load i64* null, align 8           ; <i64> [#uses=1]
+       %68 = load i64, i64* %46, align 8               ; <i64> [#uses=1]
+       %69 = load i64, i64* null, align 8              ; <i64> [#uses=1]
        %70 = add i64 %68, 0            ; <i64> [#uses=1]
        %71 = add i64 %70, %67          ; <i64> [#uses=1]
        %72 = add i64 %71, %69          ; <i64> [#uses=1]
@@ -101,8 +105,8 @@ bb349:              ; preds = %bb349, %entry
        %not429 = xor i64 %57, -1               ; <i64> [#uses=1]
        %76 = and i64 %33, %not429              ; <i64> [#uses=1]
        %77 = xor i64 %75, %76          ; <i64> [#uses=1]
-       %78 = getelementptr [80 x i64]* @K512, i64 0, i64 0             ; <i64*> [#uses=1]
-       %79 = load i64* %78, align 16           ; <i64> [#uses=1]
+       %78 = getelementptr [80 x i64], [80 x i64]* @K512, i64 0, i64 0         ; <i64*> [#uses=1]
+       %79 = load i64, i64* %78, align 16              ; <i64> [#uses=1]
        %80 = add i64 %77, %20          ; <i64> [#uses=1]
        %81 = add i64 %80, %72          ; <i64> [#uses=1]
        %82 = add i64 %81, %74          ; <i64> [#uses=1]
@@ -115,14 +119,14 @@ bb349:            ; preds = %bb349, %entry
        %87 = add i64 0, %85            ; <i64> [#uses=1]
        %asmtmp435 = call i64 asm "rorq $1,$0", "=r,J,0,~{dirflag},~{fpsr},~{flags},~{cc}"(i32 8, i64 0) nounwind               ; <i64> [#uses=1]
        %88 = xor i64 0, %asmtmp435             ; <i64> [#uses=1]
-       %89 = load i64* null, align 8           ; <i64> [#uses=3]
+       %89 = load i64, i64* null, align 8              ; <i64> [#uses=3]
        %asmtmp436 = call i64 asm "rorq $1,$0", "=r,J,0,~{dirflag},~{fpsr},~{flags},~{cc}"(i32 19, i64 %89) nounwind            ; <i64> [#uses=1]
        %asmtmp437 = call i64 asm "rorq $1,$0", "=r,J,0,~{dirflag},~{fpsr},~{flags},~{cc}"(i32 61, i64 %89) nounwind            ; <i64> [#uses=1]
        %90 = lshr i64 %89, 6           ; <i64> [#uses=1]
        %91 = xor i64 %asmtmp436, %90           ; <i64> [#uses=1]
        %92 = xor i64 %91, %asmtmp437           ; <i64> [#uses=1]
-       %93 = load i64* %63, align 8            ; <i64> [#uses=1]
-       %94 = load i64* null, align 8           ; <i64> [#uses=1]
+       %93 = load i64, i64* %63, align 8               ; <i64> [#uses=1]
+       %94 = load i64, i64* null, align 8              ; <i64> [#uses=1]
        %95 = add i64 %93, %88          ; <i64> [#uses=1]
        %96 = add i64 %95, %92          ; <i64> [#uses=1]
        %97 = add i64 %96, %94          ; <i64> [#uses=2]