blob: 87d535fd0f22aa08b39825ff9c7c12c2fe0af3e2 [file] [log] [blame]
Krzysztof Parzyszek54421032017-03-09 22:02:14 +00001; 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 hidden fastcc i32 @fred(i32 %a0) unnamed_addr #0 {
11b1:
12 %v2 = lshr i32 %a0, 16
13 %v3 = trunc i32 %v2 to i8
14 br i1 undef, label %b6, label %b4
15
16b4: ; preds = %b1
17 %v5 = and i32 %a0, 65535
18 br i1 undef, 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* undef, align 2
26 unreachable
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-double,-long-calls" }