[X86][SSE] Added full set of 128-bit vector shift tests.
[oota-llvm.git] / test / CodeGen / X86 / masked-iv-unsafe.ll
index 7ccfe855a6ad8198f9a6e3ca13700aa2cd669ae9..974a1cfb90d1e3db8b2414fd3628416ea41a2d57 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llvm-as < %s | llc -march=x86-64 > %t
+; RUN: llc < %s -march=x86-64 > %t
 ; RUN: grep and %t | count 6
 ; RUN: grep movzb %t | count 6
 ; RUN: grep sar %t | count 12
@@ -13,18 +13,18 @@ entry:
 loop:
        %indvar = phi i64 [ 10, %entry ], [ %indvar.next, %loop ]
        %indvar.i8 = and i64 %indvar, 255
-       %t0 = getelementptr double* %d, i64 %indvar.i8
-       %t1 = load double* %t0
-       %t2 = mul double %t1, 0.1
+       %t0 = getelementptr double, double* %d, i64 %indvar.i8
+       %t1 = load double, double* %t0
+       %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
+       %t3 = getelementptr double, double* %d, i64 %indvar.i24
+       %t4 = load double, double* %t3
+       %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
+       %t6 = getelementptr double, double* %d, i64 %indvar
+       %t7 = load double, double* %t6
+       %t8 = fmul double %t7, 4.5
        store double %t8, double* %t6
        %indvar.next = add i64 %indvar, 1
        %exitcond = icmp eq i64 %indvar.next, 0
@@ -41,18 +41,18 @@ entry:
 loop:
        %indvar = phi i64 [ 10, %entry ], [ %indvar.next, %loop ]
        %indvar.i8 = and i64 %indvar, 255
-       %t0 = getelementptr double* %d, i64 %indvar.i8
-       %t1 = load double* %t0
-       %t2 = mul double %t1, 0.1
+       %t0 = getelementptr double, double* %d, i64 %indvar.i8
+       %t1 = load double, double* %t0
+       %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
+       %t3 = getelementptr double, double* %d, i64 %indvar.i24
+       %t4 = load double, double* %t3
+       %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
+       %t6 = getelementptr double, double* %d, i64 %indvar
+       %t7 = load double, double* %t6
+       %t8 = fmul double %t7, 4.5
        store double %t8, double* %t6
        %indvar.next = sub i64 %indvar, 1
        %exitcond = icmp eq i64 %indvar.next, 20
@@ -70,19 +70,19 @@ loop:
        %indvar = phi i64 [ 10, %entry ], [ %indvar.next, %loop ]
         %s0 = shl i64 %indvar, 8
        %indvar.i8 = ashr i64 %s0, 8
-       %t0 = getelementptr double* %d, i64 %indvar.i8
-       %t1 = load double* %t0
-       %t2 = mul double %t1, 0.1
+       %t0 = getelementptr double, double* %d, i64 %indvar.i8
+       %t1 = load double, double* %t0
+       %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
+       %t3 = getelementptr double, double* %d, i64 %indvar.i24
+       %t4 = load double, double* %t3
+       %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
+       %t6 = getelementptr double, double* %d, i64 %indvar
+       %t7 = load double, double* %t6
+       %t8 = fmul double %t7, 4.5
        store double %t8, double* %t6
        %indvar.next = add i64 %indvar, 1
        %exitcond = icmp eq i64 %indvar.next, 0
@@ -100,19 +100,19 @@ loop:
        %indvar = phi i64 [ 10, %entry ], [ %indvar.next, %loop ]
         %s0 = shl i64 %indvar, 8
        %indvar.i8 = ashr i64 %s0, 8
-       %t0 = getelementptr double* %d, i64 %indvar.i8
-       %t1 = load double* %t0
-       %t2 = mul double %t1, 0.1
+       %t0 = getelementptr double, double* %d, i64 %indvar.i8
+       %t1 = load double, double* %t0
+       %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
+       %t3 = getelementptr double, double* %d, i64 %indvar.i24
+       %t4 = load double, double* %t3
+       %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
+       %t6 = getelementptr double, double* %d, i64 %indvar
+       %t7 = load double, double* %t6
+       %t8 = fmul double %t7, 4.5
        store double %t8, double* %t6
        %indvar.next = sub i64 %indvar, 1
        %exitcond = icmp eq i64 %indvar.next, 20
@@ -129,18 +129,18 @@ entry:
 loop:
         %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %loop ]
         %indvar.i8 = and i64 %indvar, 255
-        %t0 = getelementptr double* %d, i64 %indvar.i8
-        %t1 = load double* %t0
-        %t2 = mul double %t1, 0.1
+        %t0 = getelementptr double, double* %d, i64 %indvar.i8
+        %t1 = load double, double* %t0
+        %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
+        %t3 = getelementptr double, double* %d, i64 %indvar.i24
+        %t4 = load double, double* %t3
+        %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
+        %t6 = getelementptr double, double* %d, i64 %indvar
+        %t7 = load double, double* %t6
+        %t8 = fmul double %t7, 4.5
         store double %t8, double* %t6
         %indvar.next = add i64 %indvar, 1
         %exitcond = icmp eq i64 %indvar.next, %n
@@ -157,18 +157,18 @@ entry:
 loop:
         %indvar = phi i64 [ %n, %entry ], [ %indvar.next, %loop ]
         %indvar.i8 = and i64 %indvar, 255
-        %t0 = getelementptr double* %d, i64 %indvar.i8
-        %t1 = load double* %t0
-        %t2 = mul double %t1, 0.1
+        %t0 = getelementptr double, double* %d, i64 %indvar.i8
+        %t1 = load double, double* %t0
+        %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
+        %t3 = getelementptr double, double* %d, i64 %indvar.i24
+        %t4 = load double, double* %t3
+        %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
+        %t6 = getelementptr double, double* %d, i64 %indvar
+        %t7 = load double, double* %t6
+        %t8 = fmul double %t7, 4.5
         store double %t8, double* %t6
         %indvar.next = sub i64 %indvar, 1
         %exitcond = icmp eq i64 %indvar.next, 10
@@ -186,19 +186,19 @@ loop:
         %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %loop ]
         %s0 = shl i64 %indvar, 8
         %indvar.i8 = ashr i64 %s0, 8
-        %t0 = getelementptr double* %d, i64 %indvar.i8
-        %t1 = load double* %t0
-        %t2 = mul double %t1, 0.1
+        %t0 = getelementptr double, double* %d, i64 %indvar.i8
+        %t1 = load double, double* %t0
+        %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
+        %t3 = getelementptr double, double* %d, i64 %indvar.i24
+        %t4 = load double, double* %t3
+        %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
+        %t6 = getelementptr double, double* %d, i64 %indvar
+        %t7 = load double, double* %t6
+        %t8 = fmul double %t7, 4.5
         store double %t8, double* %t6
         %indvar.next = add i64 %indvar, 1
         %exitcond = icmp eq i64 %indvar.next, %n
@@ -216,19 +216,19 @@ loop:
         %indvar = phi i64 [ %n, %entry ], [ %indvar.next, %loop ]
         %s0 = shl i64 %indvar, 8
         %indvar.i8 = ashr i64 %s0, 8
-        %t0 = getelementptr double* %d, i64 %indvar.i8
-        %t1 = load double* %t0
-        %t2 = mul double %t1, 0.1
+        %t0 = getelementptr double, double* %d, i64 %indvar.i8
+        %t1 = load double, double* %t0
+        %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
+        %t3 = getelementptr double, double* %d, i64 %indvar.i24
+        %t4 = load double, double* %t3
+        %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
+        %t6 = getelementptr double, double* %d, i64 %indvar
+        %t7 = load double, double* %t6
+        %t8 = fmul double %t7, 4.5
         store double %t8, double* %t6
         %indvar.next = sub i64 %indvar, 1
         %exitcond = icmp eq i64 %indvar.next, 10
@@ -245,18 +245,18 @@ entry:
 loop:
        %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %loop ]
        %indvar.i8 = and i64 %indvar, 255
-       %t0 = getelementptr double* %d, i64 %indvar.i8
-       %t1 = load double* %t0
-       %t2 = mul double %t1, 0.1
+       %t0 = getelementptr double, double* %d, i64 %indvar.i8
+       %t1 = load double, double* %t0
+       %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
+       %t3 = getelementptr double, double* %d, i64 %indvar.i24
+       %t4 = load double, double* %t3
+       %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
+       %t6 = getelementptr double, double* %d, i64 %indvar
+       %t7 = load double, double* %t6
+       %t8 = fmul double %t7, 4.5
        store double %t8, double* %t6
        %indvar.next = sub i64 %indvar, 1
        %exitcond = icmp eq i64 %indvar.next, 18446744073709551615
@@ -273,18 +273,18 @@ entry:
 loop:
         %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %loop ]
         %indvar.i8 = and i64 %indvar, 255
-        %t0 = getelementptr double* %d, i64 %indvar.i8
-        %t1 = load double* %t0
-        %t2 = mul double %t1, 0.1
+        %t0 = getelementptr double, double* %d, i64 %indvar.i8
+        %t1 = load double, double* %t0
+        %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
+        %t3 = getelementptr double, double* %d, i64 %indvar.i24
+        %t4 = load double, double* %t3
+        %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
+        %t6 = getelementptr double, double* %d, i64 %indvar
+        %t7 = load double, double* %t6
+        %t8 = fmul double %t7, 4.5
         store double %t8, double* %t6
         %indvar.next = add i64 %indvar, 3
         %exitcond = icmp eq i64 %indvar.next, 10
@@ -301,18 +301,18 @@ entry:
 loop:
         %indvar = phi i64 [ 10, %entry ], [ %indvar.next, %loop ]
         %indvar.i8 = and i64 %indvar, 255
-        %t0 = getelementptr double* %d, i64 %indvar.i8
-        %t1 = load double* %t0
-        %t2 = mul double %t1, 0.1
+        %t0 = getelementptr double, double* %d, i64 %indvar.i8
+        %t1 = load double, double* %t0
+        %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
+        %t3 = getelementptr double, double* %d, i64 %indvar.i24
+        %t4 = load double, double* %t3
+        %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
+        %t6 = getelementptr double, double* %d, i64 %indvar
+        %t7 = load double, double* %t6
+        %t8 = fmul double %t7, 4.5
         store double %t8, double* %t6
         %indvar.next = sub i64 %indvar, 3
         %exitcond = icmp eq i64 %indvar.next, 0
@@ -330,19 +330,19 @@ loop:
         %indvar = phi i64 [ 0, %entry ], [ %indvar.next, %loop ]
         %s0 = shl i64 %indvar, 8
         %indvar.i8 = ashr i64 %s0, 8
-        %t0 = getelementptr double* %d, i64 %indvar.i8
-        %t1 = load double* %t0
-        %t2 = mul double %t1, 0.1
+        %t0 = getelementptr double, double* %d, i64 %indvar.i8
+        %t1 = load double, double* %t0
+        %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
+        %t3 = getelementptr double, double* %d, i64 %indvar.i24
+        %t4 = load double, double* %t3
+        %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
+        %t6 = getelementptr double, double* %d, i64 %indvar
+        %t7 = load double, double* %t6
+        %t8 = fmul double %t7, 4.5
         store double %t8, double* %t6
         %indvar.next = add i64 %indvar, 3
         %exitcond = icmp eq i64 %indvar.next, 10
@@ -360,19 +360,19 @@ loop:
         %indvar = phi i64 [ 10, %entry ], [ %indvar.next, %loop ]
         %s0 = shl i64 %indvar, 8
         %indvar.i8 = ashr i64 %s0, 8
-        %t0 = getelementptr double* %d, i64 %indvar.i8
-        %t1 = load double* %t0
-        %t2 = mul double %t1, 0.1
+        %t0 = getelementptr double, double* %d, i64 %indvar.i8
+        %t1 = load double, double* %t0
+        %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
+        %t3 = getelementptr double, double* %d, i64 %indvar.i24
+        %t4 = load double, double* %t3
+        %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
+        %t6 = getelementptr double, double* %d, i64 %indvar
+        %t7 = load double, double* %t6
+        %t8 = fmul double %t7, 4.5
         store double %t8, double* %t6
         %indvar.next = sub i64 %indvar, 3
         %exitcond = icmp eq i64 %indvar.next, 0