1; RUN: llc -march=hexagon < %s | FileCheck %s
2; REQUIRES: asserts
3
4; This testcase used to crash due to putting the bitsplit instruction in a
5; wrong place.
6; CHECK: bitsplit
7
8target triple = "hexagon"
9
10define fastcc i32 @fred(i32 %a0, i8* %a1, i1 %a2, i1 %a3) #0 {
11b1:
12  %v2 = lshr i32 %a0, 16
13  %v3 = trunc i32 %v2 to i8
14  br i1 %a2, label %b6, label %b4
15
16b4:                                               ; preds = %b1
17  %v5 = and i32 %a0, 65535
18  br i1 %a3, label %b8, label %b9
19
20b6:                                               ; preds = %b1
21  %v7 = and i32 %a0, 65535
22  br label %b9
23
24b8:                                               ; preds = %b4
25  store i8 %v3, i8* %a1, align 2
26  ret i32 1
27
28b9:                                               ; preds = %b6, %b4
29  %v10 = phi i32 [ %v7, %b6 ], [ %v5, %b4 ]
30  ret i32 %v10
31}
32
33attributes #0 = { nounwind optsize "target-cpu"="hexagonv60" "target-features"="-hvx,-long-calls" }
34