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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, - %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, %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, - %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, %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, - %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, %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, - %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, %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, - %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, %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, - %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, %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, %tmp6 = select <4 x i1> %tmp5, <4 x float> %tmp4, <4 x float> - %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, %tmp6 = select <8 x i1> %tmp5, <8 x float> %tmp4, <8 x float> - %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, %tmp6 = select <16 x i1> %tmp5, <16 x float> %tmp4, <16 x float> - %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, %tmp6 = select <2 x i1> %tmp5, <2 x double> %tmp4, <2 x double> - %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, %tmp6 = select <4 x i1> %tmp5, <4 x double> %tmp4, <4 x double> - %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, %tmp6 = select <8 x i1> %tmp5, <8 x double> %tmp4, <8 x double> - %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, %tmp6 = select <4 x i1> %tmp5, <4 x float> %tmp4, <4 x float> - %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, %tmp6 = select <8 x i1> %tmp5, <8 x float> %tmp4, <8 x float> - %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, %tmp6 = select <16 x i1> %tmp5, <16 x float> %tmp4, <16 x float> - %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, %tmp6 = select <2 x i1> %tmp5, <2 x double> %tmp4, <2 x double> - %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, %tmp6 = select <4 x i1> %tmp5, <4 x double> %tmp4, <4 x double> - %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, %tmp6 = select <8 x i1> %tmp5, <8 x double> %tmp4, <8 x double> - %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, %tmp6 = select <4 x i1> %tmp5, <4 x i32> %tmp4, <4 x i32> - %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, %tmp6 = select <8 x i1> %tmp5, <8 x i32> %tmp4, <8 x i32> - %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, %tmp6 = select <16 x i1> %tmp5, <16 x i32> %tmp4, <16 x i32> - %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, %tmp6 = select <2 x i1> %tmp5, <2 x i64> %tmp4, <2 x i64> - %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, %tmp6 = select <4 x i1> %tmp5, <4 x i64> %tmp4, <4 x i64> - %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, %tmp6 = select <8 x i1> %tmp5, <8 x i64> %tmp4, <8 x i64> - %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, %tmp6 = select <4 x i1> %tmp5, <4 x i32> %tmp4, <4 x i32> - %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, %tmp6 = select <8 x i1> %tmp5, <8 x i32> %tmp4, <8 x i32> - %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, %tmp6 = select <16 x i1> %tmp5, <16 x i32> %tmp4, <16 x i32> - %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, %tmp6 = select <2 x i1> %tmp5, <2 x i64> %tmp4, <2 x i64> - %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, %tmp6 = select <4 x i1> %tmp5, <4 x i64> %tmp4, <4 x i64> - %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, %tmp6 = select <8 x i1> %tmp5, <8 x i64> %tmp4, <8 x i64> - %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, %tmp6 = select <4 x i1> %tmp5, <4 x i32> %tmp4, <4 x i32> - %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, %tmp6 = select <8 x i1> %tmp5, <8 x i32> %tmp4, <8 x i32> - %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, %tmp6 = select <16 x i1> %tmp5, <16 x i32> %tmp4, <16 x i32> - %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, %tmp6 = select <2 x i1> %tmp5, <2 x i64> %tmp4, <2 x i64> - %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, %tmp6 = select <4 x i1> %tmp5, <4 x i64> %tmp4, <4 x i64> - %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, %tmp6 = select <8 x i1> %tmp5, <8 x i64> %tmp4, <8 x i64> - %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, %tmp6 = select <4 x i1> %tmp5, <4 x i32> %tmp4, <4 x i32> - %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, %tmp6 = select <8 x i1> %tmp5, <8 x i32> %tmp4, <8 x i32> - %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, %tmp6 = select <16 x i1> %tmp5, <16 x i32> %tmp4, <16 x i32> - %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, %tmp6 = select <2 x i1> %tmp5, <2 x i64> %tmp4, <2 x i64> - %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, %tmp6 = select <4 x i1> %tmp5, <4 x i64> %tmp4, <4 x i64> - %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, %tmp6 = select <8 x i1> %tmp5, <8 x i64> %tmp4, <8 x i64> - %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, %tmp6 = select <4 x i1> %tmp5, <4 x i32> , <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, %tmp6 = select <8 x i1> %tmp5, <8 x i32> , <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, %tmp6 = select <16 x i1> %tmp5, <16 x i32> , <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, %tmp6 = select <2 x i1> %tmp5, <2 x i64> , <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, %tmp6 = select <4 x i1> %tmp5, <4 x i64> , <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, %tmp6 = select <8 x i1> %tmp5, <8 x i64> , <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, %tmp6 = select <4 x i1> %tmp5, <4 x i32> , <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, %tmp6 = select <8 x i1> %tmp5, <8 x i32> , <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, %tmp6 = select <16 x i1> %tmp5, <16 x i32> , <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, %tmp6 = select <2 x i1> %tmp5, <2 x i64> , <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, %tmp6 = select <4 x i1> %tmp5, <4 x i64> , <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, %tmp6 = select <8 x i1> %tmp5, <8 x i64> , <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, %tmp6 = select <4 x i1> %tmp5, <4 x i32> , <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, %tmp6 = select <8 x i1> %tmp5, <8 x i32> , <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, %tmp6 = select <16 x i1> %tmp5, <16 x i32> , <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, %tmp6 = select <2 x i1> %tmp5, <2 x i64> , <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, %tmp6 = select <4 x i1> %tmp5, <4 x i64> , <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, %tmp6 = select <8 x i1> %tmp5, <8 x i64> , <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, %tmp6 = select <4 x i1> %tmp5, <4 x i32> , <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, %tmp6 = select <8 x i1> %tmp5, <8 x i32> , <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, %tmp6 = select <16 x i1> %tmp5, <16 x i32> , <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, %tmp6 = select <2 x i1> %tmp5, <2 x i64> , <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, %tmp6 = select <4 x i1> %tmp5, <4 x i64> , <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, %tmp6 = select <8 x i1> %tmp5, <8 x i64> , <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, %tmp6 = select <4 x i1> %tmp5, <4 x float> %tmp4, <4 x float> - %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, %tmp6 = select <8 x i1> %tmp5, <8 x float> %tmp4, <8 x float> - %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, %tmp6 = select <16 x i1> %tmp5, <16 x float> %tmp4, <16 x float> - %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, %tmp6 = select <2 x i1> %tmp5, <2 x double> %tmp4, <2 x double> - %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, %tmp6 = select <4 x i1> %tmp5, <4 x double> %tmp4, <4 x double> - %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, %tmp6 = select <8 x i1> %tmp5, <8 x double> %tmp4, <8 x double> - %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, - %8 = select <8 x i1> %7, <8 x float> , <8 x float> - %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, + %7 = select <8 x i1> %6, <8 x float> , <8 x float> + 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, %tmp5 = icmp ne <4 x i32> %tmp4b, zeroinitializer %tmp6 = select <4 x i1> %tmp5, <4 x i32> , <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, %tmp5 = icmp eq <4 x i32> %tmp4b, zeroinitializer %tmp6 = select <4 x i1> %tmp5, <4 x i32> , <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, %tmp5 = icmp ne <4 x i64> %tmp4b, zeroinitializer %tmp6 = select <4 x i1> %tmp5, <4 x i64> , <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, %tmp5 = icmp eq <4 x i64> %tmp4b, zeroinitializer %tmp6 = select <4 x i1> %tmp5, <4 x i64> , <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, %tmp13 = and <16 x i32> %tmp11, %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) }