36 lines · plain
1; RUN: llc -mtriple=hexagon < %s | FileCheck %s2 3; This used to fail:4; LLVM ERROR: Cannot select: t54: v4i8 = select t50, t53, t525 6; CHECK: jumpr r317 8target triple = "hexagon"9 10@g0 = external dso_local unnamed_addr constant [41 x i8], align 111define dso_local void @f0() local_unnamed_addr #0 {12b0:13 %v0 = load <16 x i32>, ptr undef, align 1614 %v1 = icmp eq <16 x i32> %v0, zeroinitializer15 %v2 = or <16 x i1> %v1, zeroinitializer16 %v3 = or <16 x i1> %v2, zeroinitializer17 %v4 = or <16 x i1> %v3, zeroinitializer18 %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, %v520 %v7 = extractelement <16 x i1> %v6, i32 021 %v8 = or i1 %v7, undef22 %v9 = or i1 %v8, undef23 br i1 %v9, label %b2, label %b124 25b1: ; preds = %b026 call void (ptr, ...) @f1(ptr @g0)27 unreachable28 29b2: ; preds = %b030 ret void31}32declare dso_local void @f1(ptr, ...) local_unnamed_addr #133 34attributes #0 = { "target-cpu"="hexagonv66" "target-features"="+hvx-length64b,+hvxv66,+v66,-long-calls" }35attributes #1 = { "use-soft-float"="false" }36