44 lines
838 B
YAML
44 lines
838 B
YAML
# RUN: llc -mtriple=aarch64-none-linux-gnu -run-pass machine-sink -o - %s | FileCheck %s
|
|
--- |
|
|
define void @sinkwzr() { ret void }
|
|
...
|
|
---
|
|
name: sinkwzr
|
|
tracksRegLiveness: true
|
|
registers:
|
|
- { id: 0, class: gpr32 }
|
|
- { id: 1, class: gpr32 }
|
|
- { id: 2, class: gpr32sp }
|
|
- { id: 3, class: gpr32 }
|
|
- { id: 4, class: gpr32 }
|
|
body: |
|
|
; Check that WZR copy is sunk into the loop preheader.
|
|
; CHECK-LABEL: name: sinkwzr
|
|
; CHECK-LABEL: bb.0:
|
|
; CHECK-NOT: COPY $wzr
|
|
bb.0:
|
|
liveins: $w0
|
|
|
|
%0 = COPY $w0
|
|
%1 = COPY $wzr
|
|
CBZW %0, %bb.3
|
|
|
|
; CHECK-LABEL: bb.1:
|
|
; CHECK: COPY $wzr
|
|
|
|
bb.1:
|
|
B %bb.2
|
|
|
|
bb.2:
|
|
%2 = PHI %0, %bb.1, %4, %bb.2
|
|
$w0 = COPY %1
|
|
%3 = SUBSWri %2, 1, 0, implicit-def dead $nzcv
|
|
%4 = COPY %3
|
|
CBZW %3, %bb.3
|
|
B %bb.2
|
|
|
|
bb.3:
|
|
RET_ReallyLR
|
|
|
|
...
|