; NOTE: Assertions have been autogenerated by utils/update_test_checks.py UTC_ARGS: --version 2 ; RUN: opt -mtriple hexagon -hexagon-vc -hvc-va-full-stores=1 -S < %s | opt -mtriple hexagon -passes=instcombine -S | FileCheck %s ; Function Attrs: nofree noinline nosync nounwind memory(argmem: readwrite) define fastcc void @fred(ptr noalias nocapture align 128 %a0, ptr noalias nocapture readonly align 128 %a1) #0 { ; CHECK-LABEL: define fastcc void @fred ; CHECK-SAME: (ptr noalias align 128 captures(none) [[A0:%.*]], ptr noalias readonly align 128 captures(none) [[A1:%.*]]) #[[ATTR0:[0-9]+]] { ; CHECK-NEXT: entry: ; CHECK-NEXT: [[V0:%.*]] = load <128 x i8>, ptr [[A1]], align 128 ; CHECK-NEXT: store <128 x i8> [[V0]], ptr [[A0]], align 128 ; CHECK-NEXT: ret void ; entry: %v0 = load <128 x i8>, ptr %a1, align 128 %v1 = shufflevector <128 x i8> %v0, <128 x i8> poison, <128 x i32> %v2 = shufflevector <128 x i8> %v0, <128 x i8> poison, <128 x i32> tail call void @llvm.masked.store.v128i8.p0(<128 x i8> %v1, ptr %a0, i32 128, <128 x i1> ) %v3 = getelementptr i8, ptr %a0, i32 1 tail call void @llvm.masked.store.v128i8.p0(<128 x i8> %v2, ptr %v3, i32 1, <128 x i1> ) ret void } ; Function Attrs: mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: write) declare void @llvm.masked.store.v128i8.p0(<128 x i8>, ptr nocapture, i32 immarg, <128 x i1>) #1 attributes #0 = { "target-cpu"="hexagonv68" "target-features"="+hvxv68,+hvx-length128b,+hvx-qfloat,-hvx-ieee-fp" } attributes #1 = { mustprogress nocallback nofree nosync nounwind willreturn memory(argmem: write) }