# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s

--- |
  target datalayout = "e-m:o-i64:64-i128:128-n32:64-S128"

  define void @bitcast_s32_gpr() { ret void }
  define void @bitcast_s32_fpr() { ret void }
  define void @bitcast_s32_gpr_fpr() { ret void }
  define void @bitcast_s32_fpr_gpr() { ret void }
  define void @bitcast_s64_gpr() { ret void }
  define void @bitcast_s64_fpr() { ret void }
  define void @bitcast_s64_gpr_fpr() { ret void }
  define void @bitcast_s64_fpr_gpr() { ret void }
  define void @bitcast_s64_v2f32_fpr() { ret void }
  define void @bitcast_s64_v8i8_fpr() { ret void }
...

---
name:            bitcast_s32_gpr
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: fpr }
  - { id: 2, class: gpr }
body:             |
  bb.0:
    liveins: $w0

    ; CHECK-LABEL: name: bitcast_s32_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr32all = COPY $w0
    ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY [[COPY]]
    ; CHECK: [[COPY2:%[0-9]+]]:gpr32all = COPY [[COPY1]]
    ; CHECK: $w0 = COPY [[COPY2]]
    %0(s32) = COPY $w0
    %1(<2 x s16>) = G_BITCAST %0
    %2(s32) = G_BITCAST %1
    $w0 = COPY %2
...

---
name:            bitcast_s32_fpr
legalized:       true
regBankSelected: true

registers:
  - { id: 0, class: fpr }
  - { id: 1, class: gpr }
  - { id: 2, class: fpr }
body:             |
  bb.0:
    liveins: $s0

    ; CHECK-LABEL: name: bitcast_s32_fpr
    ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr32all = COPY [[COPY]]
    ; CHECK: [[COPY2:%[0-9]+]]:fpr32 = COPY [[COPY1]]
    ; CHECK: $s0 = COPY [[COPY2]]
    %0(s32) = COPY $s0
    %1(<2 x s16>) = G_BITCAST %0
    %2(s32) = G_BITCAST %1
    $s0 = COPY %2
...

---
name:            bitcast_s32_gpr_fpr
legalized:       true
regBankSelected: true

registers:
  - { id: 0, class: gpr }
  - { id: 1, class: fpr }

body:             |
  bb.0:
    liveins: $w0

    ; CHECK-LABEL: name: bitcast_s32_gpr_fpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr32all = COPY $w0
    ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY [[COPY]]
    ; CHECK: $s0 = COPY [[COPY1]]
    %0(s32) = COPY $w0
    %1(<2 x s16>) = G_BITCAST %0
    $s0 = COPY %1
...

---
name:            bitcast_s32_fpr_gpr
legalized:       true
regBankSelected: true

registers:
  - { id: 0, class: fpr }
  - { id: 1, class: gpr }

body:             |
  bb.0:
    liveins: $s0

    ; CHECK-LABEL: name: bitcast_s32_fpr_gpr
    ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr32all = COPY [[COPY]]
    ; CHECK: $w0 = COPY [[COPY1]]
    %0(<2 x s16>) = COPY $s0
    %1(s32) = G_BITCAST %0
    $w0 = COPY %1(s32)
...

---
name:            bitcast_s64_gpr
legalized:       true
regBankSelected: true

registers:
  - { id: 0, class: gpr }
  - { id: 1, class: fpr }
  - { id: 2, class: gpr }

body:             |
  bb.0:
    liveins: $x0

    ; CHECK-LABEL: name: bitcast_s64_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr64all = COPY $x0
    ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY [[COPY]]
    ; CHECK: [[COPY2:%[0-9]+]]:gpr64 = COPY [[COPY1]]
    ; CHECK: $x0 = COPY [[COPY2]]
    %0(s64) = COPY $x0
    %1(<2 x s32>) = G_BITCAST %0
    %2(s64) = G_BITCAST %1
    $x0 = COPY %2(s64)
...

---
name:            bitcast_s64_fpr
legalized:       true
regBankSelected: true

registers:
  - { id: 0, class: fpr }
  - { id: 1, class: fpr }

body:             |
  bb.0:
    liveins: $d0

    ; CHECK-LABEL: name: bitcast_s64_fpr
    ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
    ; CHECK: $d0 = COPY [[COPY]]
    %0(s64) = COPY $d0
    %1(<2 x s32>) = G_BITCAST %0
    $d0 = COPY %1
...

---
name:            bitcast_s64_gpr_fpr
legalized:       true
regBankSelected: true

registers:
  - { id: 0, class: gpr }
  - { id: 1, class: fpr }
body:             |
  bb.0:
    liveins: $x0

    ; CHECK-LABEL: name: bitcast_s64_gpr_fpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr64all = COPY $x0
    ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY [[COPY]]
    ; CHECK: $d0 = COPY [[COPY1]]
    %0(s64) = COPY $x0
    %1(<2 x s32>) = G_BITCAST %0
    $d0 = COPY %1
...

---
name:            bitcast_s64_fpr_gpr
legalized:       true
regBankSelected: true

registers:
  - { id: 0, class: fpr }
  - { id: 1, class: gpr }

body:             |
  bb.0:
    liveins: $d0

    ; CHECK-LABEL: name: bitcast_s64_fpr_gpr
    ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr64all = COPY [[COPY]]
    ; CHECK: $x0 = COPY [[COPY1]]
    %0(s64) = COPY $d0
    %1(<2 x s32>) = G_BITCAST %0
    $x0 = COPY %1
...

---
name:            bitcast_s64_v2f32_fpr
legalized:       true
regBankSelected: true

registers:
  - { id: 0, class: fpr }
  - { id: 1, class: fpr }

body:             |
  bb.0:
    liveins: $d0

    ; CHECK-LABEL: name: bitcast_s64_v2f32_fpr
    ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
    ; CHECK: $x0 = COPY [[COPY]]
    %0(s64) = COPY $d0
    %1(<2 x s32>) = G_BITCAST %0
    $x0 = COPY %1(<2 x s32>)
...

---
name:            bitcast_s64_v8i8_fpr
legalized:       true
regBankSelected: true

registers:
  - { id: 0, class: fpr }
  - { id: 1, class: fpr }

body:             |
  bb.0:
    liveins: $d0

    ; CHECK-LABEL: name: bitcast_s64_v8i8_fpr
    ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
    ; CHECK: $x0 = COPY [[COPY]]
    %0(s64) = COPY $d0
    %1(<8 x s8>) = G_BITCAST %0
    $x0 = COPY %1(<8 x s8>)
...
