[llvm] b8bc235 - [X86][test] Simplify test avx512-broadcast-unfold.ll (#74593)

via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 6 06:38:36 PST 2023


Author: Shengchen Kan
Date: 2023-12-06T22:38:32+08:00
New Revision: b8bc2351b8fde6da3bff34c1507391d3714427cc

URL: https://github.com/llvm/llvm-project/commit/b8bc2351b8fde6da3bff34c1507391d3714427cc
DIFF: https://github.com/llvm/llvm-project/commit/b8bc2351b8fde6da3bff34c1507391d3714427cc.diff

LOG: [X86][test] Simplify test avx512-broadcast-unfold.ll (#74593)

The test was updated by

opt -passes=early-cse -S
llvm/test/CodeGen/X86/avx512-broadcast-unfold.ll

Added: 
    

Modified: 
    llvm/test/CodeGen/X86/avx512-broadcast-unfold.ll

Removed: 
    


################################################################################
diff  --git a/llvm/test/CodeGen/X86/avx512-broadcast-unfold.ll b/llvm/test/CodeGen/X86/avx512-broadcast-unfold.ll
index 5fc89702456cf..d2d88d6b75717 100644
--- a/llvm/test/CodeGen/X86/avx512-broadcast-unfold.ll
+++ b/llvm/test/CodeGen/X86/avx512-broadcast-unfold.ll
@@ -25,11 +25,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <16 x i32>, ptr %tmp4, align 4
+  %tmp5 = load <16 x i32>, ptr %tmp3, align 4
   %tmp6 = add nsw <16 x i32> %tmp5, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <16 x i32> %tmp6, ptr %tmp7, align 4
+  store <16 x i32> %tmp6, ptr %tmp3, align 4
   %tmp8 = add i64 %tmp, 16
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -59,11 +57,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <8 x i32>, ptr %tmp4, align 4
+  %tmp5 = load <8 x i32>, ptr %tmp3, align 4
   %tmp6 = add nsw <8 x i32> %tmp5, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <8 x i32> %tmp6, ptr %tmp7, align 4
+  store <8 x i32> %tmp6, ptr %tmp3, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -92,11 +88,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <4 x i32>, ptr %tmp4, align 4
+  %tmp5 = load <4 x i32>, ptr %tmp3, align 4
   %tmp6 = add nsw <4 x i32> %tmp5, <i32 2, i32 2, i32 2, i32 2>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <4 x i32> %tmp6, ptr %tmp7, align 4
+  store <4 x i32> %tmp6, ptr %tmp3, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -126,11 +120,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <8 x i64>, ptr %tmp4, align 8
+  %tmp5 = load <8 x i64>, ptr %tmp3, align 8
   %tmp6 = add nsw <8 x i64> %tmp5, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <8 x i64> %tmp6, ptr %tmp7, align 8
+  store <8 x i64> %tmp6, ptr %tmp3, align 8
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -160,11 +152,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <4 x i64>, ptr %tmp4, align 8
+  %tmp5 = load <4 x i64>, ptr %tmp3, align 8
   %tmp6 = add nsw <4 x i64> %tmp5, <i64 2, i64 2, i64 2, i64 2>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <4 x i64> %tmp6, ptr %tmp7, align 8
+  store <4 x i64> %tmp6, ptr %tmp3, align 8
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -193,11 +183,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <2 x i64>, ptr %tmp4, align 8
+  %tmp5 = load <2 x i64>, ptr %tmp3, align 8
   %tmp6 = add nsw <2 x i64> %tmp5, <i64 2, i64 2>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <2 x i64> %tmp6, ptr %tmp7, align 8
+  store <2 x i64> %tmp6, ptr %tmp3, align 8
   %tmp8 = add i64 %tmp, 2
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -228,11 +216,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <16 x i32>, ptr %tmp4, align 4
+  %tmp5 = load <16 x i32>, ptr %tmp3, align 4
   %tmp6 = mul nsw <16 x i32> %tmp5, <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <16 x i32> %tmp6, ptr %tmp7, align 4
+  store <16 x i32> %tmp6, ptr %tmp3, align 4
   %tmp8 = add i64 %tmp, 16
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -263,11 +249,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <8 x i32>, ptr %tmp4, align 4
+  %tmp5 = load <8 x i32>, ptr %tmp3, align 4
   %tmp6 = mul nsw <8 x i32> %tmp5, <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <8 x i32> %tmp6, ptr %tmp7, align 4
+  store <8 x i32> %tmp6, ptr %tmp3, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -297,11 +281,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <4 x i32>, ptr %tmp4, align 4
+  %tmp5 = load <4 x i32>, ptr %tmp3, align 4
   %tmp6 = mul nsw <4 x i32> %tmp5, <i32 3, i32 3, i32 3, i32 3>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <4 x i32> %tmp6, ptr %tmp7, align 4
+  store <4 x i32> %tmp6, ptr %tmp3, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -332,11 +314,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <8 x i64>, ptr %tmp4, align 8
+  %tmp5 = load <8 x i64>, ptr %tmp3, align 8
   %tmp6 = mul nsw <8 x i64> %tmp5, <i64 3, i64 3, i64 3, i64 3, i64 3, i64 3, i64 3, i64 3>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <8 x i64> %tmp6, ptr %tmp7, align 8
+  store <8 x i64> %tmp6, ptr %tmp3, align 8
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -367,11 +347,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <4 x i64>, ptr %tmp4, align 8
+  %tmp5 = load <4 x i64>, ptr %tmp3, align 8
   %tmp6 = mul nsw <4 x i64> %tmp5, <i64 3, i64 3, i64 3, i64 3>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <4 x i64> %tmp6, ptr %tmp7, align 8
+  store <4 x i64> %tmp6, ptr %tmp3, align 8
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -401,11 +379,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <2 x i64>, ptr %tmp4, align 8
+  %tmp5 = load <2 x i64>, ptr %tmp3, align 8
   %tmp6 = mul nsw <2 x i64> %tmp5, <i64 3, i64 3>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <2 x i64> %tmp6, ptr %tmp7, align 8
+  store <2 x i64> %tmp6, ptr %tmp3, align 8
   %tmp8 = add i64 %tmp, 2
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -435,11 +411,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <16 x i32>, ptr %tmp4, align 4
+  %tmp5 = load <16 x i32>, ptr %tmp3, align 4
   %tmp6 = or <16 x i32> %tmp5, <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <16 x i32> %tmp6, ptr %tmp7, align 4
+  store <16 x i32> %tmp6, ptr %tmp3, align 4
   %tmp8 = add i64 %tmp, 16
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -469,11 +443,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <8 x i32>, ptr %tmp4, align 4
+  %tmp5 = load <8 x i32>, ptr %tmp3, align 4
   %tmp6 = or <8 x i32> %tmp5, <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <8 x i32> %tmp6, ptr %tmp7, align 4
+  store <8 x i32> %tmp6, ptr %tmp3, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -502,11 +474,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <4 x i32>, ptr %tmp4, align 4
+  %tmp5 = load <4 x i32>, ptr %tmp3, align 4
   %tmp6 = or <4 x i32> %tmp5, <i32 3, i32 3, i32 3, i32 3>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <4 x i32> %tmp6, ptr %tmp7, align 4
+  store <4 x i32> %tmp6, ptr %tmp3, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -536,11 +506,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <8 x i64>, ptr %tmp4, align 8
+  %tmp5 = load <8 x i64>, ptr %tmp3, align 8
   %tmp6 = or <8 x i64> %tmp5, <i64 3, i64 3, i64 3, i64 3, i64 3, i64 3, i64 3, i64 3>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <8 x i64> %tmp6, ptr %tmp7, align 8
+  store <8 x i64> %tmp6, ptr %tmp3, align 8
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -570,11 +538,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <4 x i64>, ptr %tmp4, align 8
+  %tmp5 = load <4 x i64>, ptr %tmp3, align 8
   %tmp6 = or <4 x i64> %tmp5, <i64 3, i64 3, i64 3, i64 3>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <4 x i64> %tmp6, ptr %tmp7, align 8
+  store <4 x i64> %tmp6, ptr %tmp3, align 8
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -604,11 +570,9 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb2 ]
   %tmp3 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <2 x i64>, ptr %tmp4, align 8
+  %tmp5 = load <2 x i64>, ptr %tmp3, align 8
   %tmp6 = or <2 x i64> %tmp5, <i64 3, i64 3>
-  %tmp7 = bitcast ptr %tmp3 to ptr
-  store <2 x i64> %tmp6, ptr %tmp7, align 8
+  store <2 x i64> %tmp6, ptr %tmp3, align 8
   %tmp8 = add i64 %tmp, 2
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb2
@@ -638,11 +602,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <16 x float>, ptr %tmp3, align 4
+  %tmp4 = load <16 x float>, ptr %tmp2, align 4
   %tmp5 = fneg <16 x float> %tmp4
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <16 x float> %tmp5, ptr %tmp6, align 4
+  store <16 x float> %tmp5, ptr %tmp2, align 4
   %tmp7 = add i64 %tmp, 16
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -672,11 +634,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x float>, ptr %tmp3, align 4
+  %tmp4 = load <8 x float>, ptr %tmp2, align 4
   %tmp5 = fneg <8 x float> %tmp4
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <8 x float> %tmp5, ptr %tmp6, align 4
+  store <8 x float> %tmp5, ptr %tmp2, align 4
   %tmp7 = add i64 %tmp, 8
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -705,11 +665,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x float>, ptr %tmp3, align 4
+  %tmp4 = load <4 x float>, ptr %tmp2, align 4
   %tmp5 = fneg <4 x float> %tmp4
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <4 x float> %tmp5, ptr %tmp6, align 4
+  store <4 x float> %tmp5, ptr %tmp2, align 4
   %tmp7 = add i64 %tmp, 4
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -739,11 +697,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x double>, ptr %tmp3, align 8
+  %tmp4 = load <8 x double>, ptr %tmp2, align 8
   %tmp5 = fneg <8 x double> %tmp4
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <8 x double> %tmp5, ptr %tmp6, align 8
+  store <8 x double> %tmp5, ptr %tmp2, align 8
   %tmp7 = add i64 %tmp, 8
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -773,11 +729,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x double>, ptr %tmp3, align 8
+  %tmp4 = load <4 x double>, ptr %tmp2, align 8
   %tmp5 = fneg <4 x double> %tmp4
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <4 x double> %tmp5, ptr %tmp6, align 8
+  store <4 x double> %tmp5, ptr %tmp2, align 8
   %tmp7 = add i64 %tmp, 4
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -807,11 +761,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <2 x double>, ptr %tmp3, align 8
+  %tmp4 = load <2 x double>, ptr %tmp2, align 8
   %tmp5 = fneg <2 x double> %tmp4
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <2 x double> %tmp5, ptr %tmp6, align 8
+  store <2 x double> %tmp5, ptr %tmp2, align 8
   %tmp7 = add i64 %tmp, 2
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -841,11 +793,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <16 x float>, ptr %tmp3, align 4
+  %tmp4 = load <16 x float>, ptr %tmp2, align 4
   %tmp5 = call <16 x float> @llvm.fabs.v16f32(<16 x float> %tmp4)
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <16 x float> %tmp5, ptr %tmp6, align 4
+  store <16 x float> %tmp5, ptr %tmp2, align 4
   %tmp7 = add i64 %tmp, 16
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -854,7 +804,7 @@ bb9:                                              ; preds = %bb1
   ret void
 }
 
-; Function Attrs: nounwind readnone speculatable willreturn
+; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
 declare <16 x float> @llvm.fabs.v16f32(<16 x float>) #0
 
 define void @bcast_unfold_fabs_v8f32(ptr %arg) {
@@ -878,11 +828,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x float>, ptr %tmp3, align 4
+  %tmp4 = load <8 x float>, ptr %tmp2, align 4
   %tmp5 = call <8 x float> @llvm.fabs.v8f32(<8 x float> %tmp4)
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <8 x float> %tmp5, ptr %tmp6, align 4
+  store <8 x float> %tmp5, ptr %tmp2, align 4
   %tmp7 = add i64 %tmp, 8
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -891,7 +839,7 @@ bb9:                                              ; preds = %bb1
   ret void
 }
 
-; Function Attrs: nounwind readnone speculatable willreturn
+; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
 declare <8 x float> @llvm.fabs.v8f32(<8 x float>) #0
 
 define void @bcast_unfold_fabs_v4f32(ptr %arg) {
@@ -914,11 +862,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x float>, ptr %tmp3, align 4
+  %tmp4 = load <4 x float>, ptr %tmp2, align 4
   %tmp5 = call <4 x float> @llvm.fabs.v4f32(<4 x float> %tmp4)
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <4 x float> %tmp5, ptr %tmp6, align 4
+  store <4 x float> %tmp5, ptr %tmp2, align 4
   %tmp7 = add i64 %tmp, 4
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -927,7 +873,7 @@ bb9:                                              ; preds = %bb1
   ret void
 }
 
-; Function Attrs: nounwind readnone speculatable willreturn
+; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
 declare <4 x float> @llvm.fabs.v4f32(<4 x float>) #0
 
 define void @bcast_unfold_fabs_v8f64(ptr %arg) {
@@ -951,11 +897,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x double>, ptr %tmp3, align 8
+  %tmp4 = load <8 x double>, ptr %tmp2, align 8
   %tmp5 = call <8 x double> @llvm.fabs.v8f64(<8 x double> %tmp4)
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <8 x double> %tmp5, ptr %tmp6, align 8
+  store <8 x double> %tmp5, ptr %tmp2, align 8
   %tmp7 = add i64 %tmp, 8
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -964,7 +908,7 @@ bb9:                                              ; preds = %bb1
   ret void
 }
 
-; Function Attrs: nounwind readnone speculatable willreturn
+; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
 declare <8 x double> @llvm.fabs.v8f64(<8 x double>) #0
 
 define void @bcast_unfold_fabs_v4f64(ptr %arg) {
@@ -988,11 +932,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x double>, ptr %tmp3, align 8
+  %tmp4 = load <4 x double>, ptr %tmp2, align 8
   %tmp5 = call <4 x double> @llvm.fabs.v4f64(<4 x double> %tmp4)
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <4 x double> %tmp5, ptr %tmp6, align 8
+  store <4 x double> %tmp5, ptr %tmp2, align 8
   %tmp7 = add i64 %tmp, 4
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1001,7 +943,7 @@ bb9:                                              ; preds = %bb1
   ret void
 }
 
-; Function Attrs: nounwind readnone speculatable willreturn
+; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
 declare <4 x double> @llvm.fabs.v4f64(<4 x double>) #0
 
 define void @bcast_unfold_fabs_v2f64(ptr %arg) {
@@ -1025,11 +967,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <2 x double>, ptr %tmp3, align 8
+  %tmp4 = load <2 x double>, ptr %tmp2, align 8
   %tmp5 = call <2 x double> @llvm.fabs.v2f64(<2 x double> %tmp4)
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <2 x double> %tmp5, ptr %tmp6, align 8
+  store <2 x double> %tmp5, ptr %tmp2, align 8
   %tmp7 = add i64 %tmp, 2
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1038,7 +978,7 @@ bb9:                                              ; preds = %bb1
   ret void
 }
 
-; Function Attrs: nounwind readnone speculatable willreturn
+; Function Attrs: nocallback nofree nosync nounwind speculatable willreturn memory(none)
 declare <2 x double> @llvm.fabs.v2f64(<2 x double>) #0
 
 define void @bcast_unfold_fadd_v16f32(ptr nocapture %arg) {
@@ -1062,11 +1002,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <16 x float>, ptr %tmp3, align 4
+  %tmp4 = load <16 x float>, ptr %tmp2, align 4
   %tmp5 = fadd <16 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <16 x float> %tmp5, ptr %tmp6, align 4
+  store <16 x float> %tmp5, ptr %tmp2, align 4
   %tmp7 = add i64 %tmp, 16
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1096,11 +1034,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x float>, ptr %tmp3, align 4
+  %tmp4 = load <8 x float>, ptr %tmp2, align 4
   %tmp5 = fadd <8 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <8 x float> %tmp5, ptr %tmp6, align 4
+  store <8 x float> %tmp5, ptr %tmp2, align 4
   %tmp7 = add i64 %tmp, 8
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1129,11 +1065,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x float>, ptr %tmp3, align 4
+  %tmp4 = load <4 x float>, ptr %tmp2, align 4
   %tmp5 = fadd <4 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <4 x float> %tmp5, ptr %tmp6, align 4
+  store <4 x float> %tmp5, ptr %tmp2, align 4
   %tmp7 = add i64 %tmp, 4
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1163,11 +1097,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x double>, ptr %tmp3, align 8
+  %tmp4 = load <8 x double>, ptr %tmp2, align 8
   %tmp5 = fadd <8 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <8 x double> %tmp5, ptr %tmp6, align 8
+  store <8 x double> %tmp5, ptr %tmp2, align 8
   %tmp7 = add i64 %tmp, 8
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1197,11 +1129,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x double>, ptr %tmp3, align 8
+  %tmp4 = load <4 x double>, ptr %tmp2, align 8
   %tmp5 = fadd <4 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <4 x double> %tmp5, ptr %tmp6, align 8
+  store <4 x double> %tmp5, ptr %tmp2, align 8
   %tmp7 = add i64 %tmp, 4
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1231,11 +1161,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <2 x double>, ptr %tmp3, align 8
+  %tmp4 = load <2 x double>, ptr %tmp2, align 8
   %tmp5 = fadd <2 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <2 x double> %tmp5, ptr %tmp6, align 8
+  store <2 x double> %tmp5, ptr %tmp2, align 8
   %tmp7 = add i64 %tmp, 2
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1265,11 +1193,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <16 x float>, ptr %tmp3, align 4
+  %tmp4 = load <16 x float>, ptr %tmp2, align 4
   %tmp5 = fmul <16 x float> %tmp4, <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <16 x float> %tmp5, ptr %tmp6, align 4
+  store <16 x float> %tmp5, ptr %tmp2, align 4
   %tmp7 = add i64 %tmp, 16
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1299,11 +1225,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x float>, ptr %tmp3, align 4
+  %tmp4 = load <8 x float>, ptr %tmp2, align 4
   %tmp5 = fmul <8 x float> %tmp4, <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <8 x float> %tmp5, ptr %tmp6, align 4
+  store <8 x float> %tmp5, ptr %tmp2, align 4
   %tmp7 = add i64 %tmp, 8
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1332,11 +1256,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x float>, ptr %tmp3, align 4
+  %tmp4 = load <4 x float>, ptr %tmp2, align 4
   %tmp5 = fmul <4 x float> %tmp4, <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <4 x float> %tmp5, ptr %tmp6, align 4
+  store <4 x float> %tmp5, ptr %tmp2, align 4
   %tmp7 = add i64 %tmp, 4
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1366,11 +1288,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x double>, ptr %tmp3, align 8
+  %tmp4 = load <8 x double>, ptr %tmp2, align 8
   %tmp5 = fmul <8 x double> %tmp4, <double 3.000000e+00, double 3.000000e+00, double 3.000000e+00, double 3.000000e+00, double 3.000000e+00, double 3.000000e+00, double 3.000000e+00, double 3.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <8 x double> %tmp5, ptr %tmp6, align 8
+  store <8 x double> %tmp5, ptr %tmp2, align 8
   %tmp7 = add i64 %tmp, 8
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1400,11 +1320,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x double>, ptr %tmp3, align 8
+  %tmp4 = load <4 x double>, ptr %tmp2, align 8
   %tmp5 = fmul <4 x double> %tmp4, <double 3.000000e+00, double 3.000000e+00, double 3.000000e+00, double 3.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <4 x double> %tmp5, ptr %tmp6, align 8
+  store <4 x double> %tmp5, ptr %tmp2, align 8
   %tmp7 = add i64 %tmp, 4
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1434,11 +1352,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <2 x double>, ptr %tmp3, align 8
+  %tmp4 = load <2 x double>, ptr %tmp2, align 8
   %tmp5 = fmul <2 x double> %tmp4, <double 3.000000e+00, double 3.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <2 x double> %tmp5, ptr %tmp6, align 8
+  store <2 x double> %tmp5, ptr %tmp2, align 8
   %tmp7 = add i64 %tmp, 2
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1469,11 +1385,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <16 x float>, ptr %tmp3, align 4
+  %tmp4 = load <16 x float>, ptr %tmp2, align 4
   %tmp5 = fdiv <16 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <16 x float> %tmp5, ptr %tmp6, align 4
+  store <16 x float> %tmp5, ptr %tmp2, align 4
   %tmp7 = add i64 %tmp, 16
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1504,11 +1418,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x float>, ptr %tmp3, align 4
+  %tmp4 = load <8 x float>, ptr %tmp2, align 4
   %tmp5 = fdiv <8 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <8 x float> %tmp5, ptr %tmp6, align 4
+  store <8 x float> %tmp5, ptr %tmp2, align 4
   %tmp7 = add i64 %tmp, 8
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1538,11 +1450,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x float>, ptr %tmp3, align 4
+  %tmp4 = load <4 x float>, ptr %tmp2, align 4
   %tmp5 = fdiv <4 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <4 x float> %tmp5, ptr %tmp6, align 4
+  store <4 x float> %tmp5, ptr %tmp2, align 4
   %tmp7 = add i64 %tmp, 4
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1573,11 +1483,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x double>, ptr %tmp3, align 8
+  %tmp4 = load <8 x double>, ptr %tmp2, align 8
   %tmp5 = fdiv <8 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <8 x double> %tmp5, ptr %tmp6, align 8
+  store <8 x double> %tmp5, ptr %tmp2, align 8
   %tmp7 = add i64 %tmp, 8
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1608,11 +1516,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x double>, ptr %tmp3, align 8
+  %tmp4 = load <4 x double>, ptr %tmp2, align 8
   %tmp5 = fdiv <4 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <4 x double> %tmp5, ptr %tmp6, align 8
+  store <4 x double> %tmp5, ptr %tmp2, align 8
   %tmp7 = add i64 %tmp, 4
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1643,11 +1549,9 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp7, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <2 x double>, ptr %tmp3, align 8
+  %tmp4 = load <2 x double>, ptr %tmp2, align 8
   %tmp5 = fdiv <2 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00>
-  %tmp6 = bitcast ptr %tmp2 to ptr
-  store <2 x double> %tmp5, ptr %tmp6, align 8
+  store <2 x double> %tmp5, ptr %tmp2, align 8
   %tmp7 = add i64 %tmp, 2
   %tmp8 = icmp eq i64 %tmp7, 1024
   br i1 %tmp8, label %bb9, label %bb1
@@ -1677,12 +1581,10 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp9, %bb2 ]
   %tmp3 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <4 x float>, ptr %tmp4, align 4
+  %tmp5 = load <4 x float>, ptr %tmp3, align 4
   %tmp6 = fmul contract <4 x float> %tmp5, %tmp5
   %tmp7 = fadd contract <4 x float> %tmp6, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
-  %tmp8 = bitcast ptr %tmp3 to ptr
-  store <4 x float> %tmp7, ptr %tmp8, align 4
+  store <4 x float> %tmp7, ptr %tmp3, align 4
   %tmp9 = add i64 %tmp, 4
   %tmp10 = icmp eq i64 %tmp9, 1024
   br i1 %tmp10, label %bb11, label %bb2
@@ -1712,12 +1614,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x float>, ptr %tmp3, align 4
+  %tmp4 = load <4 x float>, ptr %tmp2, align 4
   %tmp5 = fmul contract <4 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
   %tmp6 = fadd contract <4 x float> %tmp4, %tmp5
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x float> %tmp6, ptr %tmp7, align 4
+  store <4 x float> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -1748,12 +1648,10 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp9, %bb2 ]
   %tmp3 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <8 x float>, ptr %tmp4, align 4
+  %tmp5 = load <8 x float>, ptr %tmp3, align 4
   %tmp6 = fmul contract <8 x float> %tmp5, %tmp5
   %tmp7 = fadd contract <8 x float> %tmp6, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
-  %tmp8 = bitcast ptr %tmp3 to ptr
-  store <8 x float> %tmp7, ptr %tmp8, align 4
+  store <8 x float> %tmp7, ptr %tmp3, align 4
   %tmp9 = add i64 %tmp, 8
   %tmp10 = icmp eq i64 %tmp9, 1024
   br i1 %tmp10, label %bb11, label %bb2
@@ -1784,12 +1682,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x float>, ptr %tmp3, align 4
+  %tmp4 = load <8 x float>, ptr %tmp2, align 4
   %tmp5 = fmul contract <8 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
   %tmp6 = fadd contract <8 x float> %tmp4, %tmp5
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x float> %tmp6, ptr %tmp7, align 4
+  store <8 x float> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -1820,12 +1716,10 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp9, %bb2 ]
   %tmp3 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <16 x float>, ptr %tmp4, align 4
+  %tmp5 = load <16 x float>, ptr %tmp3, align 4
   %tmp6 = fmul contract <16 x float> %tmp5, %tmp5
   %tmp7 = fadd contract <16 x float> %tmp6, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
-  %tmp8 = bitcast ptr %tmp3 to ptr
-  store <16 x float> %tmp7, ptr %tmp8, align 4
+  store <16 x float> %tmp7, ptr %tmp3, align 4
   %tmp9 = add i64 %tmp, 16
   %tmp10 = icmp eq i64 %tmp9, 1024
   br i1 %tmp10, label %bb11, label %bb2
@@ -1856,12 +1750,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <16 x float>, ptr %tmp3, align 4
+  %tmp4 = load <16 x float>, ptr %tmp2, align 4
   %tmp5 = fmul contract <16 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
   %tmp6 = fadd contract <16 x float> %tmp4, %tmp5
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <16 x float> %tmp6, ptr %tmp7, align 4
+  store <16 x float> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 16
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -1892,12 +1784,10 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp9, %bb2 ]
   %tmp3 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <2 x double>, ptr %tmp4, align 4
+  %tmp5 = load <2 x double>, ptr %tmp3, align 4
   %tmp6 = fmul contract <2 x double> %tmp5, %tmp5
   %tmp7 = fadd contract <2 x double> %tmp6, <double 2.000000e+00, double 2.000000e+00>
-  %tmp8 = bitcast ptr %tmp3 to ptr
-  store <2 x double> %tmp7, ptr %tmp8, align 8
+  store <2 x double> %tmp7, ptr %tmp3, align 8
   %tmp9 = add i64 %tmp, 2
   %tmp10 = icmp eq i64 %tmp9, 1024
   br i1 %tmp10, label %bb11, label %bb2
@@ -1928,12 +1818,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <2 x double>, ptr %tmp3, align 8
+  %tmp4 = load <2 x double>, ptr %tmp2, align 8
   %tmp5 = fmul contract <2 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00>
   %tmp6 = fadd contract <2 x double> %tmp4, %tmp5
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <2 x double> %tmp6, ptr %tmp7, align 8
+  store <2 x double> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 2
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -1964,12 +1852,10 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp9, %bb2 ]
   %tmp3 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <4 x double>, ptr %tmp4, align 8
+  %tmp5 = load <4 x double>, ptr %tmp3, align 8
   %tmp6 = fmul contract <4 x double> %tmp5, %tmp5
   %tmp7 = fadd contract <4 x double> %tmp6, <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
-  %tmp8 = bitcast ptr %tmp3 to ptr
-  store <4 x double> %tmp7, ptr %tmp8, align 8
+  store <4 x double> %tmp7, ptr %tmp3, align 8
   %tmp9 = add i64 %tmp, 4
   %tmp10 = icmp eq i64 %tmp9, 1024
   br i1 %tmp10, label %bb11, label %bb2
@@ -2000,12 +1886,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x double>, ptr %tmp3, align 8
+  %tmp4 = load <4 x double>, ptr %tmp2, align 8
   %tmp5 = fmul contract <4 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
   %tmp6 = fadd contract <4 x double> %tmp4, %tmp5
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x double> %tmp6, ptr %tmp7, align 8
+  store <4 x double> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2036,12 +1920,10 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp9, %bb2 ]
   %tmp3 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <8 x double>, ptr %tmp4, align 8
+  %tmp5 = load <8 x double>, ptr %tmp3, align 8
   %tmp6 = fmul contract <8 x double> %tmp5, %tmp5
   %tmp7 = fadd contract <8 x double> %tmp6, <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
-  %tmp8 = bitcast ptr %tmp3 to ptr
-  store <8 x double> %tmp7, ptr %tmp8, align 8
+  store <8 x double> %tmp7, ptr %tmp3, align 8
   %tmp9 = add i64 %tmp, 8
   %tmp10 = icmp eq i64 %tmp9, 1024
   br i1 %tmp10, label %bb11, label %bb2
@@ -2072,12 +1954,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x double>, ptr %tmp3, align 8
+  %tmp4 = load <8 x double>, ptr %tmp2, align 8
   %tmp5 = fmul contract <8 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
   %tmp6 = fadd contract <8 x double> %tmp4, %tmp5
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x double> %tmp6, ptr %tmp7, align 8
+  store <8 x double> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2107,12 +1987,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x float>, ptr %tmp3, align 4
+  %tmp4 = load <4 x float>, ptr %tmp2, align 4
   %tmp5 = fcmp ogt <4 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
   %tmp6 = select <4 x i1> %tmp5, <4 x float> %tmp4, <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x float> %tmp6, ptr %tmp7, align 4
+  store <4 x float> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2143,12 +2021,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x float>, ptr %tmp3, align 4
+  %tmp4 = load <8 x float>, ptr %tmp2, align 4
   %tmp5 = fcmp ogt <8 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
   %tmp6 = select <8 x i1> %tmp5, <8 x float> %tmp4, <8 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x float> %tmp6, ptr %tmp7, align 4
+  store <8 x float> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2179,12 +2055,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <16 x float>, ptr %tmp3, align 4
+  %tmp4 = load <16 x float>, ptr %tmp2, align 4
   %tmp5 = fcmp ogt <16 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
   %tmp6 = select <16 x i1> %tmp5, <16 x float> %tmp4, <16 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <16 x float> %tmp6, ptr %tmp7, align 4
+  store <16 x float> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 16
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2215,12 +2089,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <2 x double>, ptr %tmp3, align 8
+  %tmp4 = load <2 x double>, ptr %tmp2, align 8
   %tmp5 = fcmp ogt <2 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00>
   %tmp6 = select <2 x i1> %tmp5, <2 x double> %tmp4, <2 x double> <double 2.000000e+00, double 2.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <2 x double> %tmp6, ptr %tmp7, align 8
+  store <2 x double> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 2
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2251,12 +2123,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x double>, ptr %tmp3, align 8
+  %tmp4 = load <4 x double>, ptr %tmp2, align 8
   %tmp5 = fcmp ogt <4 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
   %tmp6 = select <4 x i1> %tmp5, <4 x double> %tmp4, <4 x double> <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x double> %tmp6, ptr %tmp7, align 8
+  store <4 x double> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2287,12 +2157,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x double>, ptr %tmp3, align 8
+  %tmp4 = load <8 x double>, ptr %tmp2, align 8
   %tmp5 = fcmp ogt <8 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
   %tmp6 = select <8 x i1> %tmp5, <8 x double> %tmp4, <8 x double> <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x double> %tmp6, ptr %tmp7, align 8
+  store <8 x double> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2322,12 +2190,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x float>, ptr %tmp3, align 4
+  %tmp4 = load <4 x float>, ptr %tmp2, align 4
   %tmp5 = fcmp olt <4 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
   %tmp6 = select <4 x i1> %tmp5, <4 x float> %tmp4, <4 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x float> %tmp6, ptr %tmp7, align 4
+  store <4 x float> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2358,12 +2224,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x float>, ptr %tmp3, align 4
+  %tmp4 = load <8 x float>, ptr %tmp2, align 4
   %tmp5 = fcmp olt <8 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
   %tmp6 = select <8 x i1> %tmp5, <8 x float> %tmp4, <8 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x float> %tmp6, ptr %tmp7, align 4
+  store <8 x float> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2394,12 +2258,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <16 x float>, ptr %tmp3, align 4
+  %tmp4 = load <16 x float>, ptr %tmp2, align 4
   %tmp5 = fcmp olt <16 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
   %tmp6 = select <16 x i1> %tmp5, <16 x float> %tmp4, <16 x float> <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <16 x float> %tmp6, ptr %tmp7, align 4
+  store <16 x float> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 16
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2430,12 +2292,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <2 x double>, ptr %tmp3, align 8
+  %tmp4 = load <2 x double>, ptr %tmp2, align 8
   %tmp5 = fcmp olt <2 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00>
   %tmp6 = select <2 x i1> %tmp5, <2 x double> %tmp4, <2 x double> <double 2.000000e+00, double 2.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <2 x double> %tmp6, ptr %tmp7, align 8
+  store <2 x double> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 2
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2466,12 +2326,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x double>, ptr %tmp3, align 8
+  %tmp4 = load <4 x double>, ptr %tmp2, align 8
   %tmp5 = fcmp olt <4 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
   %tmp6 = select <4 x i1> %tmp5, <4 x double> %tmp4, <4 x double> <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x double> %tmp6, ptr %tmp7, align 8
+  store <4 x double> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2502,12 +2360,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x double>, ptr %tmp3, align 8
+  %tmp4 = load <8 x double>, ptr %tmp2, align 8
   %tmp5 = fcmp olt <8 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
   %tmp6 = select <8 x i1> %tmp5, <8 x double> %tmp4, <8 x double> <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x double> %tmp6, ptr %tmp7, align 8
+  store <8 x double> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2536,12 +2392,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <4 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp slt <4 x i32> %tmp4, <i32 2, i32 2, i32 2, i32 2>
   %tmp6 = select <4 x i1> %tmp5, <4 x i32> %tmp4, <4 x i32> <i32 2, i32 2, i32 2, i32 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i32> %tmp6, ptr %tmp7, align 4
+  store <4 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2571,12 +2425,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <8 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp slt <8 x i32> %tmp4, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
   %tmp6 = select <8 x i1> %tmp5, <8 x i32> %tmp4, <8 x i32> <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x i32> %tmp6, ptr %tmp7, align 4
+  store <8 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2606,12 +2458,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <16 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <16 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp slt <16 x i32> %tmp4, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
   %tmp6 = select <16 x i1> %tmp5, <16 x i32> %tmp4, <16 x i32> <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <16 x i32> %tmp6, ptr %tmp7, align 4
+  store <16 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 16
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2640,12 +2490,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <2 x i64>, ptr %tmp3, align 8
+  %tmp4 = load <2 x i64>, ptr %tmp2, align 8
   %tmp5 = icmp slt <2 x i64> %tmp4, <i64 2, i64 2>
   %tmp6 = select <2 x i1> %tmp5, <2 x i64> %tmp4, <2 x i64> <i64 2, i64 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <2 x i64> %tmp6, ptr %tmp7, align 8
+  store <2 x i64> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 2
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2675,12 +2523,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i64>, ptr %tmp3, align 8
+  %tmp4 = load <4 x i64>, ptr %tmp2, align 8
   %tmp5 = icmp slt <4 x i64> %tmp4, <i64 2, i64 2, i64 2, i64 2>
   %tmp6 = select <4 x i1> %tmp5, <4 x i64> %tmp4, <4 x i64> <i64 2, i64 2, i64 2, i64 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i64> %tmp6, ptr %tmp7, align 8
+  store <4 x i64> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2710,12 +2556,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x i64>, ptr %tmp3, align 8
+  %tmp4 = load <8 x i64>, ptr %tmp2, align 8
   %tmp5 = icmp slt <8 x i64> %tmp4, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
   %tmp6 = select <8 x i1> %tmp5, <8 x i64> %tmp4, <8 x i64> <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x i64> %tmp6, ptr %tmp7, align 8
+  store <8 x i64> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2744,12 +2588,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <4 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp sgt <4 x i32> %tmp4, <i32 2, i32 2, i32 2, i32 2>
   %tmp6 = select <4 x i1> %tmp5, <4 x i32> %tmp4, <4 x i32> <i32 2, i32 2, i32 2, i32 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i32> %tmp6, ptr %tmp7, align 4
+  store <4 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2779,12 +2621,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <8 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp sgt <8 x i32> %tmp4, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
   %tmp6 = select <8 x i1> %tmp5, <8 x i32> %tmp4, <8 x i32> <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x i32> %tmp6, ptr %tmp7, align 4
+  store <8 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2814,12 +2654,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <16 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <16 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp sgt <16 x i32> %tmp4, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
   %tmp6 = select <16 x i1> %tmp5, <16 x i32> %tmp4, <16 x i32> <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <16 x i32> %tmp6, ptr %tmp7, align 4
+  store <16 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 16
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2848,12 +2686,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <2 x i64>, ptr %tmp3, align 8
+  %tmp4 = load <2 x i64>, ptr %tmp2, align 8
   %tmp5 = icmp sgt <2 x i64> %tmp4, <i64 2, i64 2>
   %tmp6 = select <2 x i1> %tmp5, <2 x i64> %tmp4, <2 x i64> <i64 2, i64 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <2 x i64> %tmp6, ptr %tmp7, align 8
+  store <2 x i64> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 2
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2883,12 +2719,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i64>, ptr %tmp3, align 8
+  %tmp4 = load <4 x i64>, ptr %tmp2, align 8
   %tmp5 = icmp sgt <4 x i64> %tmp4, <i64 2, i64 2, i64 2, i64 2>
   %tmp6 = select <4 x i1> %tmp5, <4 x i64> %tmp4, <4 x i64> <i64 2, i64 2, i64 2, i64 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i64> %tmp6, ptr %tmp7, align 8
+  store <4 x i64> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2918,12 +2752,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x i64>, ptr %tmp3, align 8
+  %tmp4 = load <8 x i64>, ptr %tmp2, align 8
   %tmp5 = icmp sgt <8 x i64> %tmp4, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
   %tmp6 = select <8 x i1> %tmp5, <8 x i64> %tmp4, <8 x i64> <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x i64> %tmp6, ptr %tmp7, align 8
+  store <8 x i64> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2952,12 +2784,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <4 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp ult <4 x i32> %tmp4, <i32 2, i32 2, i32 2, i32 2>
   %tmp6 = select <4 x i1> %tmp5, <4 x i32> %tmp4, <4 x i32> <i32 2, i32 2, i32 2, i32 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i32> %tmp6, ptr %tmp7, align 4
+  store <4 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -2987,12 +2817,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <8 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp ult <8 x i32> %tmp4, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
   %tmp6 = select <8 x i1> %tmp5, <8 x i32> %tmp4, <8 x i32> <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x i32> %tmp6, ptr %tmp7, align 4
+  store <8 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3022,12 +2850,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <16 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <16 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp ult <16 x i32> %tmp4, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
   %tmp6 = select <16 x i1> %tmp5, <16 x i32> %tmp4, <16 x i32> <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <16 x i32> %tmp6, ptr %tmp7, align 4
+  store <16 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 16
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3056,12 +2882,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <2 x i64>, ptr %tmp3, align 8
+  %tmp4 = load <2 x i64>, ptr %tmp2, align 8
   %tmp5 = icmp ult <2 x i64> %tmp4, <i64 2, i64 2>
   %tmp6 = select <2 x i1> %tmp5, <2 x i64> %tmp4, <2 x i64> <i64 2, i64 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <2 x i64> %tmp6, ptr %tmp7, align 8
+  store <2 x i64> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 2
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3091,12 +2915,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i64>, ptr %tmp3, align 8
+  %tmp4 = load <4 x i64>, ptr %tmp2, align 8
   %tmp5 = icmp ult <4 x i64> %tmp4, <i64 2, i64 2, i64 2, i64 2>
   %tmp6 = select <4 x i1> %tmp5, <4 x i64> %tmp4, <4 x i64> <i64 2, i64 2, i64 2, i64 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i64> %tmp6, ptr %tmp7, align 8
+  store <4 x i64> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3126,12 +2948,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x i64>, ptr %tmp3, align 8
+  %tmp4 = load <8 x i64>, ptr %tmp2, align 8
   %tmp5 = icmp ult <8 x i64> %tmp4, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
   %tmp6 = select <8 x i1> %tmp5, <8 x i64> %tmp4, <8 x i64> <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x i64> %tmp6, ptr %tmp7, align 8
+  store <8 x i64> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3160,12 +2980,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <4 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp ugt <4 x i32> %tmp4, <i32 2, i32 2, i32 2, i32 2>
   %tmp6 = select <4 x i1> %tmp5, <4 x i32> %tmp4, <4 x i32> <i32 2, i32 2, i32 2, i32 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i32> %tmp6, ptr %tmp7, align 4
+  store <4 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3195,12 +3013,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <8 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp ugt <8 x i32> %tmp4, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
   %tmp6 = select <8 x i1> %tmp5, <8 x i32> %tmp4, <8 x i32> <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x i32> %tmp6, ptr %tmp7, align 4
+  store <8 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3230,12 +3046,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <16 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <16 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp ugt <16 x i32> %tmp4, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
   %tmp6 = select <16 x i1> %tmp5, <16 x i32> %tmp4, <16 x i32> <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <16 x i32> %tmp6, ptr %tmp7, align 4
+  store <16 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 16
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3264,12 +3078,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <2 x i64>, ptr %tmp3, align 8
+  %tmp4 = load <2 x i64>, ptr %tmp2, align 8
   %tmp5 = icmp ugt <2 x i64> %tmp4, <i64 2, i64 2>
   %tmp6 = select <2 x i1> %tmp5, <2 x i64> %tmp4, <2 x i64> <i64 2, i64 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <2 x i64> %tmp6, ptr %tmp7, align 8
+  store <2 x i64> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 2
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3299,12 +3111,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i64>, ptr %tmp3, align 8
+  %tmp4 = load <4 x i64>, ptr %tmp2, align 8
   %tmp5 = icmp ugt <4 x i64> %tmp4, <i64 2, i64 2, i64 2, i64 2>
   %tmp6 = select <4 x i1> %tmp5, <4 x i64> %tmp4, <4 x i64> <i64 2, i64 2, i64 2, i64 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i64> %tmp6, ptr %tmp7, align 8
+  store <4 x i64> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3334,12 +3144,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x i64>, ptr %tmp3, align 8
+  %tmp4 = load <8 x i64>, ptr %tmp2, align 8
   %tmp5 = icmp ugt <8 x i64> %tmp4, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
   %tmp6 = select <8 x i1> %tmp5, <8 x i64> %tmp4, <8 x i64> <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x i64> %tmp6, ptr %tmp7, align 8
+  store <8 x i64> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3370,12 +3178,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <4 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp sgt <4 x i32> %tmp4, <i32 1, i32 1, i32 1, i32 1>
   %tmp6 = select <4 x i1> %tmp5, <4 x i32> <i32 3, i32 3, i32 3, i32 3>, <4 x i32> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i32> %tmp6, ptr %tmp7, align 4
+  store <4 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3407,12 +3213,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <8 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp sgt <8 x i32> %tmp4, <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
   %tmp6 = select <8 x i1> %tmp5, <8 x i32> <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>, <8 x i32> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x i32> %tmp6, ptr %tmp7, align 4
+  store <8 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3444,12 +3248,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <16 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <16 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp sgt <16 x i32> %tmp4, <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
   %tmp6 = select <16 x i1> %tmp5, <16 x i32> <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>, <16 x i32> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <16 x i32> %tmp6, ptr %tmp7, align 4
+  store <16 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 16
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3480,12 +3282,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <2 x i64>, ptr %tmp3, align 4
+  %tmp4 = load <2 x i64>, ptr %tmp2, align 4
   %tmp5 = icmp sgt <2 x i64> %tmp4, <i64 1, i64 1>
   %tmp6 = select <2 x i1> %tmp5, <2 x i64> <i64 3, i64 3>, <2 x i64> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <2 x i64> %tmp6, ptr %tmp7, align 4
+  store <2 x i64> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 2
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3493,6 +3293,7 @@ bb1:                                              ; preds = %bb1, %bb
 bb10:                                             ; preds = %bb1
   ret void
 }
+
 define void @bcast_unfold_pcmpgt_v4i64(ptr %arg) {
 ; CHECK-LABEL: bcast_unfold_pcmpgt_v4i64:
 ; CHECK:       # %bb.0: # %bb
@@ -3516,12 +3317,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i64>, ptr %tmp3, align 4
+  %tmp4 = load <4 x i64>, ptr %tmp2, align 4
   %tmp5 = icmp sgt <4 x i64> %tmp4, <i64 1, i64 1, i64 1, i64 1>
   %tmp6 = select <4 x i1> %tmp5, <4 x i64> <i64 3, i64 3, i64 3, i64 3>, <4 x i64> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i64> %tmp6, ptr %tmp7, align 4
+  store <4 x i64> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3553,12 +3352,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x i64>, ptr %tmp3, align 4
+  %tmp4 = load <8 x i64>, ptr %tmp2, align 4
   %tmp5 = icmp sgt <8 x i64> %tmp4, <i64 1, i64 1, i64 1, i64 1, i64 1, i64 1, i64 1, i64 1>
   %tmp6 = select <8 x i1> %tmp5, <8 x i64> <i64 3, i64 3, i64 3, i64 3, i64 3, i64 3, i64 3, i64 3>, <8 x i64> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x i64> %tmp6, ptr %tmp7, align 4
+  store <8 x i64> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3589,12 +3386,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <4 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp eq <4 x i32> %tmp4, <i32 1, i32 1, i32 1, i32 1>
   %tmp6 = select <4 x i1> %tmp5, <4 x i32> <i32 3, i32 3, i32 3, i32 3>, <4 x i32> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i32> %tmp6, ptr %tmp7, align 4
+  store <4 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3626,12 +3421,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <8 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp eq <8 x i32> %tmp4, <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
   %tmp6 = select <8 x i1> %tmp5, <8 x i32> <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>, <8 x i32> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x i32> %tmp6, ptr %tmp7, align 4
+  store <8 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3663,12 +3456,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <16 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <16 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp eq <16 x i32> %tmp4, <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
   %tmp6 = select <16 x i1> %tmp5, <16 x i32> <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>, <16 x i32> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <16 x i32> %tmp6, ptr %tmp7, align 4
+  store <16 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 16
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3699,12 +3490,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <2 x i64>, ptr %tmp3, align 4
+  %tmp4 = load <2 x i64>, ptr %tmp2, align 4
   %tmp5 = icmp eq <2 x i64> %tmp4, <i64 1, i64 1>
   %tmp6 = select <2 x i1> %tmp5, <2 x i64> <i64 3, i64 3>, <2 x i64> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <2 x i64> %tmp6, ptr %tmp7, align 4
+  store <2 x i64> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 2
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3712,6 +3501,7 @@ bb1:                                              ; preds = %bb1, %bb
 bb10:                                             ; preds = %bb1
   ret void
 }
+
 define void @bcast_unfold_pcmpeq_v4i64(ptr %arg) {
 ; CHECK-LABEL: bcast_unfold_pcmpeq_v4i64:
 ; CHECK:       # %bb.0: # %bb
@@ -3735,12 +3525,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i64>, ptr %tmp3, align 4
+  %tmp4 = load <4 x i64>, ptr %tmp2, align 4
   %tmp5 = icmp eq <4 x i64> %tmp4, <i64 1, i64 1, i64 1, i64 1>
   %tmp6 = select <4 x i1> %tmp5, <4 x i64> <i64 3, i64 3, i64 3, i64 3>, <4 x i64> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i64> %tmp6, ptr %tmp7, align 4
+  store <4 x i64> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3772,12 +3560,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x i64>, ptr %tmp3, align 4
+  %tmp4 = load <8 x i64>, ptr %tmp2, align 4
   %tmp5 = icmp eq <8 x i64> %tmp4, <i64 1, i64 1, i64 1, i64 1, i64 1, i64 1, i64 1, i64 1>
   %tmp6 = select <8 x i1> %tmp5, <8 x i64> <i64 3, i64 3, i64 3, i64 3, i64 3, i64 3, i64 3, i64 3>, <8 x i64> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x i64> %tmp6, ptr %tmp7, align 4
+  store <8 x i64> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3809,12 +3595,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <4 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp slt <4 x i32> %tmp4, <i32 1, i32 1, i32 1, i32 1>
   %tmp6 = select <4 x i1> %tmp5, <4 x i32> <i32 3, i32 3, i32 3, i32 3>, <4 x i32> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i32> %tmp6, ptr %tmp7, align 4
+  store <4 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp slt i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3847,12 +3631,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <8 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp slt <8 x i32> %tmp4, <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
   %tmp6 = select <8 x i1> %tmp5, <8 x i32> <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>, <8 x i32> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x i32> %tmp6, ptr %tmp7, align 4
+  store <8 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp slt i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3885,12 +3667,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <16 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <16 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp slt <16 x i32> %tmp4, <i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1, i32 1>
   %tmp6 = select <16 x i1> %tmp5, <16 x i32> <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>, <16 x i32> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <16 x i32> %tmp6, ptr %tmp7, align 4
+  store <16 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 16
   %tmp9 = icmp slt i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3922,12 +3702,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <2 x i64>, ptr %tmp3, align 4
+  %tmp4 = load <2 x i64>, ptr %tmp2, align 4
   %tmp5 = icmp slt <2 x i64> %tmp4, <i64 1, i64 1>
   %tmp6 = select <2 x i1> %tmp5, <2 x i64> <i64 3, i64 3>, <2 x i64> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <2 x i64> %tmp6, ptr %tmp7, align 4
+  store <2 x i64> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 2
   %tmp9 = icmp slt i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3935,6 +3713,7 @@ bb1:                                              ; preds = %bb1, %bb
 bb10:                                             ; preds = %bb1
   ret void
 }
+
 define void @bcast_unfold_pcmp_v4i64(ptr %arg) {
 ; CHECK-LABEL: bcast_unfold_pcmp_v4i64:
 ; CHECK:       # %bb.0: # %bb
@@ -3959,12 +3738,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i64>, ptr %tmp3, align 4
+  %tmp4 = load <4 x i64>, ptr %tmp2, align 4
   %tmp5 = icmp slt <4 x i64> %tmp4, <i64 1, i64 1, i64 1, i64 1>
   %tmp6 = select <4 x i1> %tmp5, <4 x i64> <i64 3, i64 3, i64 3, i64 3>, <4 x i64> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i64> %tmp6, ptr %tmp7, align 4
+  store <4 x i64> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp slt i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -3997,12 +3774,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x i64>, ptr %tmp3, align 4
+  %tmp4 = load <8 x i64>, ptr %tmp2, align 4
   %tmp5 = icmp slt <8 x i64> %tmp4, <i64 1, i64 1, i64 1, i64 1, i64 1, i64 1, i64 1, i64 1>
   %tmp6 = select <8 x i1> %tmp5, <8 x i64> <i64 3, i64 3, i64 3, i64 3, i64 3, i64 3, i64 3, i64 3>, <8 x i64> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x i64> %tmp6, ptr %tmp7, align 4
+  store <8 x i64> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp slt i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -4034,12 +3809,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <4 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp ult <4 x i32> %tmp4, <i32 2, i32 2, i32 2, i32 2>
   %tmp6 = select <4 x i1> %tmp5, <4 x i32> <i32 3, i32 3, i32 3, i32 3>, <4 x i32> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i32> %tmp6, ptr %tmp7, align 4
+  store <4 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp ult i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -4072,12 +3845,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <8 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp ult <8 x i32> %tmp4, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
   %tmp6 = select <8 x i1> %tmp5, <8 x i32> <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>, <8 x i32> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x i32> %tmp6, ptr %tmp7, align 4
+  store <8 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp ult i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -4110,12 +3881,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <16 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <16 x i32>, ptr %tmp2, align 4
   %tmp5 = icmp ult <16 x i32> %tmp4, <i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2, i32 2>
   %tmp6 = select <16 x i1> %tmp5, <16 x i32> <i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3, i32 3>, <16 x i32> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <16 x i32> %tmp6, ptr %tmp7, align 4
+  store <16 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 16
   %tmp9 = icmp ult i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -4147,12 +3916,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <2 x i64>, ptr %tmp3, align 4
+  %tmp4 = load <2 x i64>, ptr %tmp2, align 4
   %tmp5 = icmp ult <2 x i64> %tmp4, <i64 2, i64 2>
   %tmp6 = select <2 x i1> %tmp5, <2 x i64> <i64 3, i64 3>, <2 x i64> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <2 x i64> %tmp6, ptr %tmp7, align 4
+  store <2 x i64> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 2
   %tmp9 = icmp ult i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -4160,6 +3927,7 @@ bb1:                                              ; preds = %bb1, %bb
 bb10:                                             ; preds = %bb1
   ret void
 }
+
 define void @bcast_unfold_pcmpu_v4i64(ptr %arg) {
 ; CHECK-LABEL: bcast_unfold_pcmpu_v4i64:
 ; CHECK:       # %bb.0: # %bb
@@ -4184,12 +3952,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i64>, ptr %tmp3, align 4
+  %tmp4 = load <4 x i64>, ptr %tmp2, align 4
   %tmp5 = icmp ult <4 x i64> %tmp4, <i64 2, i64 2, i64 2, i64 2>
   %tmp6 = select <4 x i1> %tmp5, <4 x i64> <i64 3, i64 3, i64 3, i64 3>, <4 x i64> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i64> %tmp6, ptr %tmp7, align 4
+  store <4 x i64> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp ult i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -4222,12 +3988,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x i64>, ptr %tmp3, align 4
+  %tmp4 = load <8 x i64>, ptr %tmp2, align 4
   %tmp5 = icmp ult <8 x i64> %tmp4, <i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2, i64 2>
   %tmp6 = select <8 x i1> %tmp5, <8 x i64> <i64 3, i64 3, i64 3, i64 3, i64 3, i64 3, i64 3, i64 3>, <8 x i64> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x i64> %tmp6, ptr %tmp7, align 4
+  store <8 x i64> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp ult i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -4259,12 +4023,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x float>, ptr %tmp3, align 4
+  %tmp4 = load <4 x float>, ptr %tmp2, align 4
   %tmp5 = fcmp olt <4 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
   %tmp6 = select <4 x i1> %tmp5, <4 x float> %tmp4, <4 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x float> %tmp6, ptr %tmp7, align 4
+  store <4 x float> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -4297,12 +4059,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x float>, ptr %tmp3, align 4
+  %tmp4 = load <8 x float>, ptr %tmp2, align 4
   %tmp5 = fcmp olt <8 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
   %tmp6 = select <8 x i1> %tmp5, <8 x float> %tmp4, <8 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x float> %tmp6, ptr %tmp7, align 4
+  store <8 x float> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -4335,12 +4095,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds float, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <16 x float>, ptr %tmp3, align 4
+  %tmp4 = load <16 x float>, ptr %tmp2, align 4
   %tmp5 = fcmp olt <16 x float> %tmp4, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
   %tmp6 = select <16 x i1> %tmp5, <16 x float> %tmp4, <16 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <16 x float> %tmp6, ptr %tmp7, align 4
+  store <16 x float> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 16
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -4374,12 +4132,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <2 x double>, ptr %tmp3, align 8
+  %tmp4 = load <2 x double>, ptr %tmp2, align 8
   %tmp5 = fcmp olt <2 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00>
   %tmp6 = select <2 x i1> %tmp5, <2 x double> %tmp4, <2 x double> <double 3.000000e+00, double 3.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <2 x double> %tmp6, ptr %tmp7, align 8
+  store <2 x double> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 2
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -4412,12 +4168,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x double>, ptr %tmp3, align 8
+  %tmp4 = load <4 x double>, ptr %tmp2, align 8
   %tmp5 = fcmp olt <4 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
   %tmp6 = select <4 x i1> %tmp5, <4 x double> %tmp4, <4 x double> <double 3.000000e+00, double 3.000000e+00, double 3.000000e+00, double 3.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x double> %tmp6, ptr %tmp7, align 8
+  store <4 x double> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -4450,12 +4204,10 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds double, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <8 x double>, ptr %tmp3, align 8
+  %tmp4 = load <8 x double>, ptr %tmp2, align 8
   %tmp5 = fcmp olt <8 x double> %tmp4, <double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00, double 2.000000e+00>
   %tmp6 = select <8 x i1> %tmp5, <8 x double> %tmp4, <8 x double> <double 3.000000e+00, double 3.000000e+00, double 3.000000e+00, double 3.000000e+00, double 3.000000e+00, double 3.000000e+00, double 3.000000e+00, double 3.000000e+00>
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <8 x double> %tmp6, ptr %tmp7, align 8
+  store <8 x double> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 8
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -4483,19 +4235,17 @@ define void @bcast_unfold_cmp_v8f32_refold(ptr nocapture %0) {
   br label %2
 
 2:                                                ; preds = %2, %1
-  %3 = phi i64 [ 0, %1 ], [ %10, %2 ]
+  %3 = phi i64 [ 0, %1 ], [ %8, %2 ]
   %4 = getelementptr inbounds float, ptr %0, i64 %3
-  %5 = bitcast ptr %4 to ptr
-  %6 = load <8 x float>, ptr %5, align 4
-  %7 = fcmp olt <8 x float> %6, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
-  %8 = select <8 x i1> %7, <8 x float> <float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00>, <8 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>
-  %9 = bitcast ptr %4 to ptr
-  store <8 x float> %8, ptr %9, align 4
-  %10 = add i64 %3, 8
-  %11 = icmp eq i64 %10, 1024
-  br i1 %11, label %12, label %2
+  %5 = load <8 x float>, ptr %4, align 4
+  %6 = fcmp olt <8 x float> %5, <float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00, float 2.000000e+00>
+  %7 = select <8 x i1> %6, <8 x float> <float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00, float 4.000000e+00>, <8 x float> <float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00, float 3.000000e+00>
+  store <8 x float> %7, ptr %4, align 4
+  %8 = add i64 %3, 8
+  %9 = icmp eq i64 %8, 1024
+  br i1 %9, label %10, label %2
 
-12:                                               ; preds = %2
+10:                                               ; preds = %2
   ret void
 }
 
@@ -4521,13 +4271,11 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <4 x i32>, ptr %tmp2, align 4
   %tmp4b = and <4 x i32> %tmp4, <i32 2, i32 2, i32 2, i32 2>
   %tmp5 = icmp ne <4 x i32> %tmp4b, zeroinitializer
   %tmp6 = select <4 x i1> %tmp5, <4 x i32> <i32 3, i32 3, i32 3, i32 3>, <4 x i32> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i32> %tmp6, ptr %tmp7, align 4
+  store <4 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -4558,13 +4306,11 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i32>, ptr %tmp3, align 4
+  %tmp4 = load <4 x i32>, ptr %tmp2, align 4
   %tmp4b = and <4 x i32> %tmp4, <i32 2, i32 2, i32 2, i32 2>
   %tmp5 = icmp eq <4 x i32> %tmp4b, zeroinitializer
   %tmp6 = select <4 x i1> %tmp5, <4 x i32> <i32 3, i32 3, i32 3, i32 3>, <4 x i32> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i32> %tmp6, ptr %tmp7, align 4
+  store <4 x i32> %tmp6, ptr %tmp2, align 4
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -4596,13 +4342,11 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i64>, ptr %tmp3, align 8
+  %tmp4 = load <4 x i64>, ptr %tmp2, align 8
   %tmp4b = and <4 x i64> %tmp4, <i64 2, i64 2, i64 2, i64 2>
   %tmp5 = icmp ne <4 x i64> %tmp4b, zeroinitializer
   %tmp6 = select <4 x i1> %tmp5, <4 x i64> <i64 3, i64 3, i64 3, i64 3>, <4 x i64> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i64> %tmp6, ptr %tmp7, align 8
+  store <4 x i64> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -4634,13 +4378,11 @@ bb:
 bb1:                                              ; preds = %bb1, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp8, %bb1 ]
   %tmp2 = getelementptr inbounds i64, ptr %arg, i64 %tmp
-  %tmp3 = bitcast ptr %tmp2 to ptr
-  %tmp4 = load <4 x i64>, ptr %tmp3, align 8
+  %tmp4 = load <4 x i64>, ptr %tmp2, align 8
   %tmp4b = and <4 x i64> %tmp4, <i64 2, i64 2, i64 2, i64 2>
   %tmp5 = icmp eq <4 x i64> %tmp4b, zeroinitializer
   %tmp6 = select <4 x i1> %tmp5, <4 x i64> <i64 3, i64 3, i64 3, i64 3>, <4 x i64> %tmp4
-  %tmp7 = bitcast ptr %tmp2 to ptr
-  store <4 x i64> %tmp6, ptr %tmp7, align 8
+  store <4 x i64> %tmp6, ptr %tmp2, align 8
   %tmp8 = add i64 %tmp, 4
   %tmp9 = icmp eq i64 %tmp8, 1024
   br i1 %tmp9, label %bb10, label %bb1
@@ -4649,9 +4391,6 @@ bb10:                                             ; preds = %bb1
   ret void
 }
 
-; The or/and pattern here should be turned into vpternlog. The multiply is
-; there to increase the use count of the loads so they can't fold. We want to
-; unfold the broadcast and pull it out of the loop.
 define void @bcast_unfold_vpternlog_v16i32(ptr %arg, ptr %arg1) {
 ; CHECK-LABEL: bcast_unfold_vpternlog_v16i32:
 ; CHECK:       # %bb.0: # %bb
@@ -4677,18 +4416,15 @@ bb:
 bb2:                                              ; preds = %bb2, %bb
   %tmp = phi i64 [ 0, %bb ], [ %tmp18, %bb2 ]
   %tmp3 = getelementptr inbounds i32, ptr %arg, i64 %tmp
-  %tmp4 = bitcast ptr %tmp3 to ptr
-  %tmp5 = load <16 x i32>, ptr %tmp4, align 4
+  %tmp5 = load <16 x i32>, ptr %tmp3, align 4
   %tmp6 = getelementptr inbounds i32, ptr %arg1, i64 %tmp
-  %tmp10 = bitcast ptr %tmp6 to ptr
-  %tmp11 = load <16 x i32>, ptr %tmp10, align 4
+  %tmp11 = load <16 x i32>, ptr %tmp6, align 4
   %tmp12 = and <16 x i32> %tmp5, <i32 32767, i32 32767, i32 32767, i32 32767, i32 32767, i32 32767, i32 32767, i32 32767, i32 32767, i32 32767, i32 32767, i32 32767, i32 32767, i32 32767, i32 32767, i32 32767>
   %tmp13 = and <16 x i32> %tmp11, <i32 -32768, i32 -32768, i32 -32768, i32 -32768, i32 -32768, i32 -32768, i32 -32768, i32 -32768, i32 -32768, i32 -32768, i32 -32768, i32 -32768, i32 -32768, i32 -32768, i32 -32768, i32 -32768>
   %tmp14 = or <16 x i32> %tmp12, %tmp13
   %tmp15 = mul <16 x i32> %tmp14, %tmp5
   %tmp16 = mul <16 x i32> %tmp15, %tmp11
-  %tmp17 = bitcast ptr %tmp3 to ptr
-  store <16 x i32> %tmp16, ptr %tmp17, align 4
+  store <16 x i32> %tmp16, ptr %tmp3, align 4
   %tmp18 = add i64 %tmp, 16
   %tmp19 = icmp eq i64 %tmp18, 1024
   br i1 %tmp19, label %bb20, label %bb2
@@ -4697,3 +4433,4 @@ bb20:                                             ; preds = %bb2
   ret void
 }
 
+attributes #0 = { nocallback nofree nosync nounwind speculatable willreturn memory(none) }


        


More information about the llvm-commits mailing list