1; RUN: llc -march=hexagon < %s | FileCheck %s 2 3; This used to fail: 4; LLVM ERROR: Cannot select: t54: v4i8 = select t50, t53, t52 5 6; CHECK: jumpr r31 7 8target triple = "hexagon" 9 10@g0 = external dso_local unnamed_addr constant [41 x i8], align 1 11define dso_local void @f0() local_unnamed_addr #0 { 12b0: 13 %v0 = load <16 x i32>, <16 x i32>* undef, align 16 14 %v1 = icmp eq <16 x i32> %v0, zeroinitializer 15 %v2 = or <16 x i1> %v1, zeroinitializer 16 %v3 = or <16 x i1> %v2, zeroinitializer 17 %v4 = or <16 x i1> %v3, zeroinitializer 18 %v5 = shufflevector <16 x i1> %v4, <16 x i1> undef, <16 x i32> <i32 1, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef, i32 undef> 19 %v6 = or <16 x i1> %v4, %v5 20 %v7 = extractelement <16 x i1> %v6, i32 0 21 %v8 = or i1 %v7, undef 22 %v9 = or i1 %v8, undef 23 br i1 %v9, label %b2, label %b1 24 25b1: ; preds = %b0 26 call void (i8*, ...) @f1(i8* getelementptr inbounds ([41 x i8], [41 x i8]* @g0, i32 0, i32 0)) 27 unreachable 28 29b2: ; preds = %b0 30 ret void 31} 32declare dso_local void @f1(i8*, ...) local_unnamed_addr #1 33 34attributes #0 = { "target-cpu"="hexagonv66" "target-features"="+hvx-length64b,+hvxv66,+v66,-long-calls" } 35attributes #1 = { "use-soft-float"="false" } 36