[NFC][RemoveDIs] Prefer iterators over inst-pointers in InstCombine
[llvm-project.git] / llvm / test / CodeGen / Hexagon / bit-bitsplit-at.ll
blob6d2375c2be4647e15f66891690cea533016c18a2
1 ; RUN: llc -march=hexagon < %s | FileCheck %s
2 ; REQUIRES: asserts
4 ; This testcase used to crash due to putting the bitsplit instruction in a
5 ; wrong place.
6 ; CHECK: bitsplit
8 target triple = "hexagon"
10 define fastcc i32 @fred(i32 %a0, ptr %a1, i1 %a2, i1 %a3) #0 {
11 b1:
12   %v2 = lshr i32 %a0, 16
13   %v3 = trunc i32 %v2 to i8
14   br i1 %a2, label %b6, label %b4
16 b4:                                               ; preds = %b1
17   %v5 = and i32 %a0, 65535
18   br i1 %a3, label %b8, label %b9
20 b6:                                               ; preds = %b1
21   %v7 = and i32 %a0, 65535
22   br label %b9
24 b8:                                               ; preds = %b4
25   store i8 %v3, ptr %a1, align 2
26   ret i32 1
28 b9:                                               ; preds = %b6, %b4
29   %v10 = phi i32 [ %v7, %b6 ], [ %v5, %b4 ]
30   ret i32 %v10
33 attributes #0 = { nounwind optsize "target-cpu"="hexagonv60" "target-features"="-hvx,-long-calls" }