# RUN: llc -O0 -mtriple=aarch64-- -run-pass=instruction-select -verify-machineinstrs -global-isel %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 }
...

---
# CHECK-LABEL: name: bitcast_s32_gpr
name:            bitcast_s32_gpr
legalized:       true
regBankSelected: true
# CHECK:      registers:
# CHECK-NEXT:  - { id: 0, class: gpr32all, preferred-register: '' }
# CHECK-NEXT:  - { id: 1, class: gpr32all, preferred-register: '' }
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }

# CHECK:  body:
# CHECK:    %0 = COPY %w0
# CHECK:    %1 = COPY %0
body:             |
  bb.0:
    liveins: %w0

    %0(s32) = COPY %w0
    %1(s32) = G_BITCAST %0
    %w0 = COPY %1(s32)
...

---
# CHECK-LABEL: name: bitcast_s32_fpr
name:            bitcast_s32_fpr
legalized:       true
regBankSelected: true

# CHECK:      registers:
# CHECK-NEXT:  - { id: 0, class: fpr32, preferred-register: '' }
# CHECK-NEXT:  - { id: 1, class: fpr32, preferred-register: '' }
registers:
  - { id: 0, class: fpr }
  - { id: 1, class: fpr }

# CHECK:  body:
# CHECK:    %0 = COPY %s0
# CHECK:    %1 = COPY %0
body:             |
  bb.0:
    liveins: %s0

    %0(s32) = COPY %s0
    %1(s32) = G_BITCAST %0
    %s0 = COPY %1(s32)
...

---
# CHECK-LABEL: name: bitcast_s32_gpr_fpr
name:            bitcast_s32_gpr_fpr
legalized:       true
regBankSelected: true

# CHECK:      registers:
# CHECK-NEXT:  - { id: 0, class: gpr32all, preferred-register: '' }
# CHECK-NEXT:  - { id: 1, class: fpr32, preferred-register: '' }
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: fpr }

# CHECK:  body:
# CHECK:    %0 = COPY %w0
# CHECK:    %1 = COPY %0
body:             |
  bb.0:
    liveins: %w0

    %0(s32) = COPY %w0
    %1(s32) = G_BITCAST %0
    %s0 = COPY %1(s32)
...

---
# CHECK-LABEL: name: bitcast_s32_fpr_gpr
name:            bitcast_s32_fpr_gpr
legalized:       true
regBankSelected: true

# CHECK:      registers:
# CHECK-NEXT:  - { id: 0, class: fpr32, preferred-register: '' }
# CHECK-NEXT:  - { id: 1, class: gpr32, preferred-register: '' }
registers:
  - { id: 0, class: fpr }
  - { id: 1, class: gpr }

# CHECK:  body:
# CHECK:    %0 = COPY %s0
# CHECK:    %1 = COPY %0
body:             |
  bb.0:
    liveins: %s0

    %0(s32) = COPY %s0
    %1(s32) = G_BITCAST %0
    %w0 = COPY %1(s32)
...

---
# CHECK-LABEL: name: bitcast_s64_gpr
name:            bitcast_s64_gpr
legalized:       true
regBankSelected: true

# CHECK:      registers:
# CHECK-NEXT:  - { id: 0, class: gpr64all, preferred-register: '' }
# CHECK-NEXT:  - { id: 1, class: gpr64all, preferred-register: '' }
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }

# CHECK:  body:
# CHECK:    %0 = COPY %x0
# CHECK:    %1 = COPY %0
body:             |
  bb.0:
    liveins: %x0

    %0(s64) = COPY %x0
    %1(s64) = G_BITCAST %0
    %x0 = COPY %1(s64)
...

---
# CHECK-LABEL: name: bitcast_s64_fpr
name:            bitcast_s64_fpr
legalized:       true
regBankSelected: true

# CHECK:      registers:
# CHECK-NEXT:  - { id: 0, class: fpr64, preferred-register: '' }
# CHECK-NEXT:  - { id: 1, class: fpr64, preferred-register: '' }
registers:
  - { id: 0, class: fpr }
  - { id: 1, class: fpr }

# CHECK:  body:
# CHECK:    %0 = COPY %d0
# CHECK:    %1 = COPY %0
body:             |
  bb.0:
    liveins: %d0

    %0(s64) = COPY %d0
    %1(s64) = G_BITCAST %0
    %d0 = COPY %1(s64)
...

---
# CHECK-LABEL: name: bitcast_s64_gpr_fpr
name:            bitcast_s64_gpr_fpr
legalized:       true
regBankSelected: true

# CHECK:      registers:
# CHECK-NEXT:  - { id: 0, class: gpr64all, preferred-register: '' }
# CHECK-NEXT:  - { id: 1, class: fpr64, preferred-register: '' }
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: fpr }
# CHECK:  body:
# CHECK:    %0 = COPY %x0
# CHECK:    %1 = COPY %0
body:             |
  bb.0:
    liveins: %x0

    %0(s64) = COPY %x0
    %1(s64) = G_BITCAST %0
    %d0 = COPY %1(s64)
...

---
# CHECK-LABEL: name: bitcast_s64_fpr_gpr
name:            bitcast_s64_fpr_gpr
legalized:       true
regBankSelected: true

# CHECK:      registers:
# CHECK-NEXT:  - { id: 0, class: fpr64, preferred-register: '' }
# CHECK-NEXT:  - { id: 1, class: gpr64, preferred-register: '' }
registers:
  - { id: 0, class: fpr }
  - { id: 1, class: gpr }

# CHECK:  body:
# CHECK:    %0 = COPY %d0
# CHECK:    %1 = COPY %0
body:             |
  bb.0:
    liveins: %d0

    %0(s64) = COPY %d0
    %1(s64) = G_BITCAST %0
    %x0 = COPY %1(s64)
...
