; RUN: llc -O2 -march=hexagon < %s | FileCheck %s ; do not crash with Cannot select on vcombine on v128i8 ; CHECK: vadd target triple = "hexagon-unknown--elf" ; Function Attrs: norecurse nounwind define void @f0() #0 { b0: br i1 undef, label %b6, label %b1 b1: ; preds = %b0 br i1 undef, label %b2, label %b6, !prof !1 b2: ; preds = %b1 br label %b3 b3: ; preds = %b5, %b2 br i1 undef, label %b4, label %b5, !prof !1 b4: ; preds = %b3 %v0 = load <64 x i8>, <64 x i8>* undef, align 1 %v1 = shufflevector <64 x i8> %v0, <64 x i8> undef, <128 x i32> %v2 = bitcast <128 x i8> %v1 to <32 x i32> %v3 = tail call <32 x i32> @llvm.hexagon.V6.vaddb.dv(<32 x i32> undef, <32 x i32> %v2) %v4 = bitcast <32 x i32> %v3 to <128 x i8> %v5 = shufflevector <128 x i8> %v4, <128 x i8> undef, <64 x i32> store <64 x i8> %v5, <64 x i8>* undef, align 1, !tbaa !2 br label %b5 b5: ; preds = %b4, %b3 br i1 undef, label %b6, label %b3 b6: ; preds = %b5, %b1, %b0 ret void } ; Function Attrs: nounwind readnone declare <32 x i32> @llvm.hexagon.V6.vaddb.dv(<32 x i32>, <32 x i32>) #1 attributes #0 = { norecurse nounwind "target-cpu"="hexagonv60" "target-features"="+hvxv60,+hvx-length64b" } attributes #1 = { nounwind readnone } !llvm.module.flags = !{!0} !0 = !{i32 2, !"halide_mattrs", !"+hvx"} !1 = !{!"branch_weights", i32 1073741824, i32 0} !2 = !{!3, !3, i64 0} !3 = !{!"Addb$6", !4} !4 = !{!"Halide buffer"}