blob: 4075ba279c75723e2839c9d16a2e22c3f093ffdf [file] [log] [blame]
# RUN: llc -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s
--- |
define void @cbz_s32() { ret void }
define void @cbz_s64() { ret void }
define void @cbnz_s32() { ret void }
define void @cbnz_s64() { ret void }
...
---
# CHECK-LABEL: name: cbz_s32
name: cbz_s32
legalized: true
regBankSelected: true
# CHECK: body:
# CHECK: bb.0:
# CHECK: %0:gpr32 = COPY $w0
# CHECK: CBZW %0, %bb.1
# CHECK: B %bb.0
body: |
bb.0:
liveins: $w0
successors: %bb.0, %bb.1
%0:gpr(s32) = COPY $w0
%1:gpr(s32) = G_CONSTANT i32 0
%2:gpr(s32) = G_ICMP intpred(eq), %0, %1
%3:gpr(s1) = G_TRUNC %2(s32)
G_BRCOND %3(s1), %bb.1
G_BR %bb.0
bb.1:
...
---
# CHECK-LABEL: name: cbz_s64
name: cbz_s64
legalized: true
regBankSelected: true
# CHECK: body:
# CHECK: bb.0:
# CHECK: %0:gpr64 = COPY $x0
# CHECK: CBZX %0, %bb.1
# CHECK: B %bb.0
body: |
bb.0:
liveins: $x0
successors: %bb.0, %bb.1
%0:gpr(s64) = COPY $x0
%1:gpr(s64) = G_CONSTANT i64 0
%2:gpr(s32) = G_ICMP intpred(eq), %0, %1
%3:gpr(s1) = G_TRUNC %2(s32)
G_BRCOND %3(s1), %bb.1
G_BR %bb.0
bb.1:
...
---
# CHECK-LABEL: name: cbnz_s32
name: cbnz_s32
legalized: true
regBankSelected: true
# CHECK: body:
# CHECK: bb.0:
# CHECK: %0:gpr32 = COPY $w0
# CHECK: CBNZW %0, %bb.1
# CHECK: B %bb.0
body: |
bb.0:
liveins: $w0
successors: %bb.0, %bb.1
%0:gpr(s32) = COPY $w0
%1:gpr(s32) = G_CONSTANT i32 0
%2:gpr(s32) = G_ICMP intpred(ne), %0, %1
%3:gpr(s1) = G_TRUNC %2(s32)
G_BRCOND %3(s1), %bb.1
G_BR %bb.0
bb.1:
...
---
# CHECK-LABEL: name: cbnz_s64
name: cbnz_s64
legalized: true
regBankSelected: true
# CHECK: body:
# CHECK: bb.0:
# CHECK: %0:gpr64 = COPY $x0
# CHECK: CBNZX %0, %bb.1
# CHECK: B %bb.0
body: |
bb.0:
liveins: $x0
successors: %bb.0, %bb.1
%0:gpr(s64) = COPY $x0
%1:gpr(s64) = G_CONSTANT i64 0
%2:gpr(s32) = G_ICMP intpred(ne), %0, %1
%3:gpr(s1) = G_TRUNC %2(s32)
G_BRCOND %3(s1), %bb.1
G_BR %bb.0
bb.1:
...