Move zext and sext casts fed by loads into the same block as the
[oota-llvm.git] / test / CodeGen / X86 / masked-iv-safe.ll
index e10253516ba56baa21776bea9553a0bbed7db06e..bc493bd8f724ffe87760ff29f0a930aff3861c5b 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | llc -march=x86-64 > %t
+; RUN: llc < %s -march=x86-64 > %t
 ; RUN: not grep and %t
 ; RUN: not grep movz %t
 ; RUN: not grep sar %t
@@ -20,16 +20,16 @@ loop:
        %indvar.i8 = and i64 %indvar, 255
        %t0 = getelementptr double* %d, i64 %indvar.i8
        %t1 = load double* %t0
-       %t2 = mul double %t1, 0.1
+       %t2 = fmul double %t1, 0.1
        store double %t2, double* %t0
        %indvar.i24 = and i64 %indvar, 16777215
        %t3 = getelementptr double* %d, i64 %indvar.i24
        %t4 = load double* %t3
-       %t5 = mul double %t4, 2.3
+       %t5 = fmul double %t4, 2.3
        store double %t5, double* %t3
        %t6 = getelementptr double* %d, i64 %indvar
        %t7 = load double* %t6
-       %t8 = mul double %t7, 4.5
+       %t8 = fmul double %t7, 4.5
        store double %t8, double* %t6
        %indvar.next = add i64 %indvar, 1
        %exitcond = icmp eq i64 %indvar.next, 10
@@ -48,16 +48,16 @@ loop:
        %indvar.i8 = and i64 %indvar, 255
        %t0 = getelementptr double* %d, i64 %indvar.i8
        %t1 = load double* %t0
-       %t2 = mul double %t1, 0.1
+       %t2 = fmul double %t1, 0.1
        store double %t2, double* %t0
        %indvar.i24 = and i64 %indvar, 16777215
        %t3 = getelementptr double* %d, i64 %indvar.i24
        %t4 = load double* %t3
-       %t5 = mul double %t4, 2.3
+       %t5 = fmul double %t4, 2.3
        store double %t5, double* %t3
        %t6 = getelementptr double* %d, i64 %indvar
        %t7 = load double* %t6
-       %t8 = mul double %t7, 4.5
+       %t8 = fmul double %t7, 4.5
        store double %t8, double* %t6
        %indvar.next = sub i64 %indvar, 1
        %exitcond = icmp eq i64 %indvar.next, 0
@@ -77,17 +77,17 @@ loop:
        %indvar.i8 = ashr i64 %s0, 8
        %t0 = getelementptr double* %d, i64 %indvar.i8
        %t1 = load double* %t0
-       %t2 = mul double %t1, 0.1
+       %t2 = fmul double %t1, 0.1
        store double %t2, double* %t0
        %s1 = shl i64 %indvar, 24
        %indvar.i24 = ashr i64 %s1, 24
        %t3 = getelementptr double* %d, i64 %indvar.i24
        %t4 = load double* %t3
-       %t5 = mul double %t4, 2.3
+       %t5 = fmul double %t4, 2.3
        store double %t5, double* %t3
        %t6 = getelementptr double* %d, i64 %indvar
        %t7 = load double* %t6
-       %t8 = mul double %t7, 4.5
+       %t8 = fmul double %t7, 4.5
        store double %t8, double* %t6
        %indvar.next = add i64 %indvar, 1
        %exitcond = icmp eq i64 %indvar.next, 10
@@ -107,17 +107,17 @@ loop:
        %indvar.i8 = ashr i64 %s0, 8
        %t0 = getelementptr double* %d, i64 %indvar.i8
        %t1 = load double* %t0
-       %t2 = mul double %t1, 0.1
+       %t2 = fmul double %t1, 0.1
        store double %t2, double* %t0
        %s1 = shl i64 %indvar, 24
        %indvar.i24 = ashr i64 %s1, 24
        %t3 = getelementptr double* %d, i64 %indvar.i24
        %t4 = load double* %t3
-       %t5 = mul double %t4, 2.3
+       %t5 = fmul double %t4, 2.3
        store double %t5, double* %t3
        %t6 = getelementptr double* %d, i64 %indvar
        %t7 = load double* %t6
-       %t8 = mul double %t7, 4.5
+       %t8 = fmul double %t7, 4.5
        store double %t8, double* %t6
        %indvar.next = sub i64 %indvar, 1
        %exitcond = icmp eq i64 %indvar.next, 0
@@ -136,16 +136,16 @@ loop:
        %indvar.i8 = and i64 %indvar, 255
        %t0 = getelementptr double* %d, i64 %indvar.i8
        %t1 = load double* %t0
-       %t2 = mul double %t1, 0.1
+       %t2 = fmul double %t1, 0.1
        store double %t2, double* %t0
        %indvar.i24 = and i64 %indvar, 16777215
        %t3 = getelementptr double* %d, i64 %indvar.i24
        %t4 = load double* %t3
-       %t5 = mul double %t4, 2.3
+       %t5 = fmul double %t4, 2.3
        store double %t5, double* %t3
        %t6 = getelementptr double* %d, i64 %indvar
        %t7 = load double* %t6
-       %t8 = mul double %t7, 4.5
+       %t8 = fmul double %t7, 4.5
        store double %t8, double* %t6
        %indvar.next = add i64 %indvar, 1
        %exitcond = icmp eq i64 %indvar.next, 0
@@ -164,16 +164,16 @@ loop:
        %indvar.i8 = and i64 %indvar, 255
        %t0 = getelementptr double* %d, i64 %indvar.i8
        %t1 = load double* %t0
-       %t2 = mul double %t1, 0.1
+       %t2 = fmul double %t1, 0.1
        store double %t2, double* %t0
        %indvar.i24 = and i64 %indvar, 16777215
        %t3 = getelementptr double* %d, i64 %indvar.i24
        %t4 = load double* %t3
-       %t5 = mul double %t4, 2.3
+       %t5 = fmul double %t4, 2.3
        store double %t5, double* %t3
        %t6 = getelementptr double* %d, i64 %indvar
        %t7 = load double* %t6
-       %t8 = mul double %t7, 4.5
+       %t8 = fmul double %t7, 4.5
        store double %t8, double* %t6
        %indvar.next = sub i64 %indvar, 1
        %exitcond = icmp eq i64 %indvar.next, 18446744073709551615
@@ -193,17 +193,17 @@ loop:
        %indvar.i8 = ashr i64 %s0, 8
        %t0 = getelementptr double* %d, i64 %indvar.i8
        %t1 = load double* %t0
-       %t2 = mul double %t1, 0.1
+       %t2 = fmul double %t1, 0.1
        store double %t2, double* %t0
        %s1 = shl i64 %indvar, 24
        %indvar.i24 = ashr i64 %s1, 24
        %t3 = getelementptr double* %d, i64 %indvar.i24
        %t4 = load double* %t3
-       %t5 = mul double %t4, 2.3
+       %t5 = fmul double %t4, 2.3
        store double %t5, double* %t3
        %t6 = getelementptr double* %d, i64 %indvar
        %t7 = load double* %t6
-       %t8 = mul double %t7, 4.5
+       %t8 = fmul double %t7, 4.5
        store double %t8, double* %t6
        %indvar.next = add i64 %indvar, 1
        %exitcond = icmp eq i64 %indvar.next, 0
@@ -223,17 +223,17 @@ loop:
        %indvar.i8 = ashr i64 %s0, 8
        %t0 = getelementptr double* %d, i64 %indvar.i8
        %t1 = load double* %t0
-       %t2 = mul double %t1, 0.1
+       %t2 = fmul double %t1, 0.1
        store double %t2, double* %t0
        %s1 = shl i64 %indvar, 24
        %indvar.i24 = ashr i64 %s1, 24
        %t3 = getelementptr double* %d, i64 %indvar.i24
        %t4 = load double* %t3
-       %t5 = mul double %t4, 2.3
+       %t5 = fmul double %t4, 2.3
        store double %t5, double* %t3
        %t6 = getelementptr double* %d, i64 %indvar
        %t7 = load double* %t6
-       %t8 = mul double %t7, 4.5
+       %t8 = fmul double %t7, 4.5
        store double %t8, double* %t6
        %indvar.next = sub i64 %indvar, 1
        %exitcond = icmp eq i64 %indvar.next, 18446744073709551615