1 # RUN: llc -mtriple=aarch64-none-linux-gnu -run-pass machine-sink -o - %s | FileCheck %s
5 br i1 undef, label %then.8, label %else.8, !make.implicit !0
7 then.8: ; preds = %else.8, %else.7
8 %merge = phi i8 [ 1, %else.7 ], [ 0, %else.8 ]
9 ret i8 %merge ;1 ;%merge
11 else.8: ; preds = %else.7
12 %icmp.8 = icmp eq i64 undef, undef
14 br i1 %icmp.8, label %else.11, label %then.8
16 else.11: ; preds = %else.8
24 tracksRegLiveness: true
26 - { id: 0, class: gpr32all }
27 - { id: 1, class: gpr32all }
28 - { id: 2, class: gpr32 }
29 - { id: 3, class: gpr32 }
30 - { id: 4, class: gpr32all }
31 - { id: 5, class: gpr32 }
32 - { id: 6, class: gpr32all }
34 ; Just check that the pass didn't crash/assert.
35 ; CHECK-LABEL: name: g
37 successors: %bb.1, %bb.2
39 %2:gpr32 = MOVi32imm 1
40 ; Sinking the below COPY instruction caused an assert to trigger before
41 ; requiring getMemOperandWithOffset to return false rather than assert
42 ; when handling non-memory operations.
49 %0:gpr32all = PHI %1, %bb.0, %4, %bb.2
51 RET_ReallyLR implicit $w0
54 successors: %bb.3, %bb.1
62 %6:gpr32all = IMPLICIT_DEF
64 RET_ReallyLR implicit $w0