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

Shengchen Kan via llvm-commits llvm-commits at lists.llvm.org
Wed Dec 6 05:57:52 PST 2023


https://github.com/KanRobert created https://github.com/llvm/llvm-project/pull/74593

The test was updated by

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


>From 390ecf2836719d83b8178819f9997444eeec333c Mon Sep 17 00:00:00 2001
From: Shengchen Kan <shengchen.kan at intel.com>
Date: Wed, 6 Dec 2023 21:55:42 +0800
Subject: [PATCH] [X86][test] Simplify test avx512-broadcast-unfold.ll

The test was updated by

opt -passes=early-cse -S llvm/test/CodeGen/X86/avx512-broadcast-unfold.ll
---
 .../CodeGen/X86/avx512-broadcast-unfold.ll    | 829 ++++++------------
 1 file changed, 283 insertions(+), 546 deletions(-)

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