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,-long-calls" } 34