Krzysztof Parzyszek | 5442103 | 2017-03-09 22:02:14 +0000 | [diff] [blame^] | 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 | |
| 8 | target triple = "hexagon" |
| 9 | |
| 10 | define hidden fastcc i32 @fred(i32 %a0) unnamed_addr #0 { |
| 11 | b1: |
| 12 | %v2 = lshr i32 %a0, 16 |
| 13 | %v3 = trunc i32 %v2 to i8 |
| 14 | br i1 undef, label %b6, label %b4 |
| 15 | |
| 16 | b4: ; preds = %b1 |
| 17 | %v5 = and i32 %a0, 65535 |
| 18 | br i1 undef, label %b8, label %b9 |
| 19 | |
| 20 | b6: ; preds = %b1 |
| 21 | %v7 = and i32 %a0, 65535 |
| 22 | br label %b9 |
| 23 | |
| 24 | b8: ; preds = %b4 |
| 25 | store i8 %v3, i8* undef, align 2 |
| 26 | unreachable |
| 27 | |
| 28 | b9: ; preds = %b6, %b4 |
| 29 | %v10 = phi i32 [ %v7, %b6 ], [ %v5, %b4 ] |
| 30 | ret i32 %v10 |
| 31 | } |
| 32 | |
| 33 | attributes #0 = { nounwind optsize "target-cpu"="hexagonv60" "target-features"="-hvx-double,-long-calls" } |