blob: 7deea56ba23a13353b351e54945d699cd497865a [file]
# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py UTC_ARGS: --version 6
# RUN: llc -o - %s -mtriple=aarch64-none-eabi -run-pass=machine-cp -mcp-use-is-copy-instr | FileCheck %s
---
name: cbz_wzr
tracksRegLiveness: true
body: |
; CHECK-LABEL: name: cbz_wzr
; CHECK: bb.0:
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
; CHECK-NEXT: liveins: $x0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: CBZW $wzr, %bb.2
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.1:
; CHECK-NEXT: $w0 = MOVZWi 10, 0
; CHECK-NEXT: RET undef $lr, implicit $w0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.2:
; CHECK-NEXT: $w0 = MOVZWi 20, 0
; CHECK-NEXT: RET undef $lr, implicit $w0
bb.0:
liveins: $x0
$w8 = ORRWrs $wzr, $wzr, 0
CBZW killed renamable $w8, %bb.2
bb.1:
$w0 = MOVZWi 10, 0
RET undef $lr, implicit $w0
bb.2:
$w0 = MOVZWi 20, 0
RET undef $lr, implicit $w0
...
---
name: cbnz_wzr
tracksRegLiveness: true
body: |
; CHECK-LABEL: name: cbnz_wzr
; CHECK: bb.0:
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
; CHECK-NEXT: liveins: $x0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: CBNZW $wzr, %bb.2
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.1:
; CHECK-NEXT: $w0 = MOVZWi 10, 0
; CHECK-NEXT: RET undef $lr, implicit $w0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.2:
; CHECK-NEXT: $w0 = MOVZWi 20, 0
; CHECK-NEXT: RET undef $lr, implicit $w0
bb.0:
liveins: $x0
$w8 = ORRWrs $wzr, $wzr, 0
CBNZW killed renamable $w8, %bb.2
bb.1:
$w0 = MOVZWi 10, 0
RET undef $lr, implicit $w0
bb.2:
$w0 = MOVZWi 20, 0
RET undef $lr, implicit $w0
...
---
name: tbz_wzr
tracksRegLiveness: true
body: |
; CHECK-LABEL: name: tbz_wzr
; CHECK: bb.0:
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
; CHECK-NEXT: liveins: $x0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: TBZW $wzr, 0, %bb.2
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.1:
; CHECK-NEXT: $w0 = MOVZWi 10, 0
; CHECK-NEXT: RET undef $lr, implicit $w0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.2:
; CHECK-NEXT: $w0 = MOVZWi 20, 0
; CHECK-NEXT: RET undef $lr, implicit $w0
bb.0:
liveins: $x0
$w8 = ORRWrs $wzr, $wzr, 0
TBZW killed renamable $w8, 0, %bb.2
bb.1:
$w0 = MOVZWi 10, 0
RET undef $lr, implicit $w0
bb.2:
$w0 = MOVZWi 20, 0
RET undef $lr, implicit $w0
...
---
name: tbnz_wzr
tracksRegLiveness: true
body: |
; CHECK-LABEL: name: tbnz_wzr
; CHECK: bb.0:
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
; CHECK-NEXT: liveins: $x0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: TBNZW $wzr, 0, %bb.2
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.1:
; CHECK-NEXT: $w0 = MOVZWi 10, 0
; CHECK-NEXT: RET undef $lr, implicit $w0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.2:
; CHECK-NEXT: $w0 = MOVZWi 20, 0
; CHECK-NEXT: RET undef $lr, implicit $w0
bb.0:
liveins: $x0
$w8 = ORRWrs $wzr, $wzr, 0
TBNZW killed renamable $w8, 0, %bb.2
bb.1:
$w0 = MOVZWi 10, 0
RET undef $lr, implicit $w0
bb.2:
$w0 = MOVZWi 20, 0
RET undef $lr, implicit $w0
...
---
name: cbz_xzr
tracksRegLiveness: true
body: |
; CHECK-LABEL: name: cbz_xzr
; CHECK: bb.0:
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
; CHECK-NEXT: liveins: $x0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: CBZX $xzr, %bb.2
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.1:
; CHECK-NEXT: $w0 = MOVZWi 10, 0
; CHECK-NEXT: RET undef $lr, implicit $w0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.2:
; CHECK-NEXT: $w0 = MOVZWi 20, 0
; CHECK-NEXT: RET undef $lr, implicit $w0
bb.0:
liveins: $x0
$x8 = ORRXrs $xzr, $xzr, 0
CBZX killed renamable $x8, %bb.2
bb.1:
$w0 = MOVZWi 10, 0
RET undef $lr, implicit $w0
bb.2:
$w0 = MOVZWi 20, 0
RET undef $lr, implicit $w0
...
---
name: cbnz_xzr
tracksRegLiveness: true
body: |
; CHECK-LABEL: name: cbnz_xzr
; CHECK: bb.0:
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
; CHECK-NEXT: liveins: $x0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: CBNZX $xzr, %bb.2
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.1:
; CHECK-NEXT: $w0 = MOVZWi 10, 0
; CHECK-NEXT: RET undef $lr, implicit $w0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.2:
; CHECK-NEXT: $w0 = MOVZWi 20, 0
; CHECK-NEXT: RET undef $lr, implicit $w0
bb.0:
liveins: $x0
$x8 = ORRXrs $xzr, $xzr, 0
CBNZX killed renamable $x8, %bb.2
bb.1:
$w0 = MOVZWi 10, 0
RET undef $lr, implicit $w0
bb.2:
$w0 = MOVZWi 20, 0
RET undef $lr, implicit $w0
...
---
name: tbz_xzr
tracksRegLiveness: true
body: |
; CHECK-LABEL: name: tbz_xzr
; CHECK: bb.0:
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
; CHECK-NEXT: liveins: $x0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: TBZX $xzr, 0, %bb.2
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.1:
; CHECK-NEXT: $w0 = MOVZWi 10, 0
; CHECK-NEXT: RET undef $lr, implicit $w0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.2:
; CHECK-NEXT: $w0 = MOVZWi 20, 0
; CHECK-NEXT: RET undef $lr, implicit $w0
bb.0:
liveins: $x0
$x8 = ORRXrs $xzr, $xzr, 0
TBZX killed renamable $x8, 0, %bb.2
bb.1:
$w0 = MOVZWi 10, 0
RET undef $lr, implicit $w0
bb.2:
$w0 = MOVZWi 20, 0
RET undef $lr, implicit $w0
...
---
name: tbnz_xzr
tracksRegLiveness: true
body: |
; CHECK-LABEL: name: tbnz_xzr
; CHECK: bb.0:
; CHECK-NEXT: successors: %bb.2(0x40000000), %bb.1(0x40000000)
; CHECK-NEXT: liveins: $x0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: TBNZX $xzr, 0, %bb.2
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.1:
; CHECK-NEXT: $w0 = MOVZWi 10, 0
; CHECK-NEXT: RET undef $lr, implicit $w0
; CHECK-NEXT: {{ $}}
; CHECK-NEXT: bb.2:
; CHECK-NEXT: $w0 = MOVZWi 20, 0
; CHECK-NEXT: RET undef $lr, implicit $w0
bb.0:
liveins: $x0
$x8 = ORRXrs $xzr, $xzr, 0
TBNZX killed renamable $x8, 0, %bb.2
bb.1:
$w0 = MOVZWi 10, 0
RET undef $lr, implicit $w0
bb.2:
$w0 = MOVZWi 20, 0
RET undef $lr, implicit $w0
...