# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -O0 -mtriple arm64-- -run-pass=regbankselect -global-isel %s -o - | FileCheck %s

# Check the default mappings for various instructions.

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

  define void @test_add_s32() { ret void }
  define void @test_add_v4s32() { ret void }
  define void @test_sub_s32() { ret void }
  define void @test_sub_v4s32() { ret void }
  define void @test_mul_s32() { ret void }
  define void @test_mul_v4s32() { ret void }

  define void @test_and_s32() { ret void }
  define void @test_and_v4s32() { ret void }
  define void @test_or_s32() { ret void }
  define void @test_or_v4s32() { ret void }
  define void @test_xor_s32() { ret void }
  define void @test_xor_v4s32() { ret void }

  define void @test_shl_s32() { ret void }
  define void @test_shl_v4s32() { ret void }
  define void @test_lshr_s32() { ret void }
  define void @test_ashr_s32() { ret void }

  define void @test_sdiv_s32() { ret void }
  define void @test_udiv_s32() { ret void }

  define void @test_anyext_s64_s32() { ret void }
  define void @test_sext_s64_s32() { ret void }
  define void @test_zext_s64_s32() { ret void }
  define void @test_trunc_s32_s64() { ret void }

  define void @test_constant_s32() { ret void }
  define void @test_constant_p0() { ret void }

  define void @test_icmp_s32() { ret void }
  define void @test_icmp_p0() { ret void }

  define void @test_frame_index_p0() {
    %ptr0 = alloca i64
    ret void
  }

  define void @test_ptrtoint_s64_p0() { ret void }
  define void @test_inttoptr_p0_s64() { ret void }

  define void @test_load_s32_p0() { ret void }
  define void @test_store_s32_p0() { ret void }

  define void @test_fadd_s32() { ret void }
  define void @test_fsub_s32() { ret void }
  define void @test_fmul_s32() { ret void }
  define void @test_fdiv_s32() { ret void }

  define void @test_fpext_s64_s32() { ret void }
  define void @test_fptrunc_s32_s64() { ret void }

  define void @test_fconstant_s32() { ret void }

  define void @test_fcmp_s32() { ret void }

  define void @test_sitofp_s64_s32() { ret void }
  define void @test_uitofp_s32_s64() { ret void }

  define void @test_fptosi_s64_s32() { ret void }
  define void @test_fptoui_s32_s64() { ret void }

  define void @test_gphi_ptr() { ret void }

...

---
name:            test_add_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %w0
    ; CHECK-LABEL: name: test_add_s32
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY %w0
    ; CHECK: [[ADD:%[0-9]+]]:gpr(s32) = G_ADD [[COPY]], [[COPY]]
    %0(s32) = COPY %w0
    %1(s32) = G_ADD %0, %0
...

---
name:            test_add_v4s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %q0
    ; CHECK-LABEL: name: test_add_v4s32
    ; CHECK: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY %q0
    ; CHECK: [[ADD:%[0-9]+]]:fpr(<4 x s32>) = G_ADD [[COPY]], [[COPY]]
    %0(<4 x s32>) = COPY %q0
    %1(<4 x s32>) = G_ADD %0, %0
...

---
name:            test_sub_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %w0
    ; CHECK-LABEL: name: test_sub_s32
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY %w0
    ; CHECK: [[SUB:%[0-9]+]]:gpr(s32) = G_SUB [[COPY]], [[COPY]]
    %0(s32) = COPY %w0
    %1(s32) = G_SUB %0, %0
...

---
name:            test_sub_v4s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %q0
    ; CHECK-LABEL: name: test_sub_v4s32
    ; CHECK: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY %q0
    ; CHECK: [[SUB:%[0-9]+]]:fpr(<4 x s32>) = G_SUB [[COPY]], [[COPY]]
    %0(<4 x s32>) = COPY %q0
    %1(<4 x s32>) = G_SUB %0, %0
...

---
name:            test_mul_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %w0
    ; CHECK-LABEL: name: test_mul_s32
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY %w0
    ; CHECK: [[MUL:%[0-9]+]]:gpr(s32) = G_MUL [[COPY]], [[COPY]]
    %0(s32) = COPY %w0
    %1(s32) = G_MUL %0, %0
...

---
name:            test_mul_v4s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %q0
    ; CHECK-LABEL: name: test_mul_v4s32
    ; CHECK: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY %q0
    ; CHECK: [[MUL:%[0-9]+]]:fpr(<4 x s32>) = G_MUL [[COPY]], [[COPY]]
    %0(<4 x s32>) = COPY %q0
    %1(<4 x s32>) = G_MUL %0, %0
...

---
name:            test_and_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %w0
    ; CHECK-LABEL: name: test_and_s32
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY %w0
    ; CHECK: [[AND:%[0-9]+]]:gpr(s32) = G_AND [[COPY]], [[COPY]]
    %0(s32) = COPY %w0
    %1(s32) = G_AND %0, %0
...

---
name:            test_and_v4s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %q0
    ; CHECK-LABEL: name: test_and_v4s32
    ; CHECK: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY %q0
    ; CHECK: [[AND:%[0-9]+]]:fpr(<4 x s32>) = G_AND [[COPY]], [[COPY]]
    %0(<4 x s32>) = COPY %q0
    %1(<4 x s32>) = G_AND %0, %0
...

---
name:            test_or_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %w0
    ; CHECK-LABEL: name: test_or_s32
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY %w0
    ; CHECK: [[OR:%[0-9]+]]:gpr(s32) = G_OR [[COPY]], [[COPY]]
    %0(s32) = COPY %w0
    %1(s32) = G_OR %0, %0
...

---
name:            test_or_v4s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %q0
    ; CHECK-LABEL: name: test_or_v4s32
    ; CHECK: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY %q0
    ; CHECK: [[OR:%[0-9]+]]:fpr(<4 x s32>) = G_OR [[COPY]], [[COPY]]
    %0(<4 x s32>) = COPY %q0
    %1(<4 x s32>) = G_OR %0, %0
...

---
name:            test_xor_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %w0
    ; CHECK-LABEL: name: test_xor_s32
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY %w0
    ; CHECK: [[XOR:%[0-9]+]]:gpr(s32) = G_XOR [[COPY]], [[COPY]]
    %0(s32) = COPY %w0
    %1(s32) = G_XOR %0, %0
...

---
name:            test_xor_v4s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %q0
    ; CHECK-LABEL: name: test_xor_v4s32
    ; CHECK: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY %q0
    ; CHECK: [[XOR:%[0-9]+]]:fpr(<4 x s32>) = G_XOR [[COPY]], [[COPY]]
    %0(<4 x s32>) = COPY %q0
    %1(<4 x s32>) = G_XOR %0, %0
...

---
name:            test_shl_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %w0
    ; CHECK-LABEL: name: test_shl_s32
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY %w0
    ; CHECK: [[SHL:%[0-9]+]]:gpr(s32) = G_SHL [[COPY]], [[COPY]]
    %0(s32) = COPY %w0
    %1(s32) = G_SHL %0, %0
...

---
name:            test_shl_v4s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %q0
    ; CHECK-LABEL: name: test_shl_v4s32
    ; CHECK: [[COPY:%[0-9]+]]:fpr(<4 x s32>) = COPY %q0
    ; CHECK: [[SHL:%[0-9]+]]:fpr(<4 x s32>) = G_SHL [[COPY]], [[COPY]]
    %0(<4 x s32>) = COPY %q0
    %1(<4 x s32>) = G_SHL %0, %0
...

---
name:            test_lshr_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %w0
    ; CHECK-LABEL: name: test_lshr_s32
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY %w0
    ; CHECK: [[LSHR:%[0-9]+]]:gpr(s32) = G_LSHR [[COPY]], [[COPY]]
    %0(s32) = COPY %w0
    %1(s32) = G_LSHR %0, %0
...

---
name:            test_ashr_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %w0
    ; CHECK-LABEL: name: test_ashr_s32
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY %w0
    ; CHECK: [[ASHR:%[0-9]+]]:gpr(s32) = G_ASHR [[COPY]], [[COPY]]
    %0(s32) = COPY %w0
    %1(s32) = G_ASHR %0, %0
...

---
name:            test_sdiv_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %w0
    ; CHECK-LABEL: name: test_sdiv_s32
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY %w0
    ; CHECK: [[SDIV:%[0-9]+]]:gpr(s32) = G_SDIV [[COPY]], [[COPY]]
    %0(s32) = COPY %w0
    %1(s32) = G_SDIV %0, %0
...

---
name:            test_udiv_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %w0
    ; CHECK-LABEL: name: test_udiv_s32
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY %w0
    ; CHECK: [[UDIV:%[0-9]+]]:gpr(s32) = G_UDIV [[COPY]], [[COPY]]
    %0(s32) = COPY %w0
    %1(s32) = G_UDIV %0, %0
...

---
name:            test_anyext_s64_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %w0
    ; CHECK-LABEL: name: test_anyext_s64_s32
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY %w0
    ; CHECK: [[ANYEXT:%[0-9]+]]:gpr(s64) = G_ANYEXT [[COPY]](s32)
    %0(s32) = COPY %w0
    %1(s64) = G_ANYEXT %0
...

---
name:            test_sext_s64_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %w0
    ; CHECK-LABEL: name: test_sext_s64_s32
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY %w0
    ; CHECK: [[SEXT:%[0-9]+]]:gpr(s64) = G_SEXT [[COPY]](s32)
    %0(s32) = COPY %w0
    %1(s64) = G_SEXT %0
...

---
name:            test_zext_s64_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %w0
    ; CHECK-LABEL: name: test_zext_s64_s32
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY %w0
    ; CHECK: [[ZEXT:%[0-9]+]]:gpr(s64) = G_ZEXT [[COPY]](s32)
    %0(s32) = COPY %w0
    %1(s64) = G_ZEXT %0
...

---
name:            test_trunc_s32_s64
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %x0
    ; CHECK-LABEL: name: test_trunc_s32_s64
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s64) = COPY %x0
    ; CHECK: [[TRUNC:%[0-9]+]]:gpr(s32) = G_TRUNC [[COPY]](s64)
    %0(s64) = COPY %x0
    %1(s32) = G_TRUNC %0
...

---
name:            test_constant_s32
legalized:       true
registers:
  - { id: 0, class: _ }
body: |
  bb.0:
    ; CHECK-LABEL: name: test_constant_s32
    ; CHECK: [[C:%[0-9]+]]:gpr(s32) = G_CONSTANT 123
    %0(s32) = G_CONSTANT 123
...

---
name:            test_constant_p0
legalized:       true
registers:
  - { id: 0, class: _ }
body: |
  bb.0:
    ; CHECK-LABEL: name: test_constant_p0
    ; CHECK: [[C:%[0-9]+]]:gpr(p0) = G_CONSTANT 0
    %0(p0) = G_CONSTANT 0
...

---
name:            test_icmp_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body: |
  bb.0:
    liveins: %w0
    ; CHECK-LABEL: name: test_icmp_s32
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY %w0
    ; CHECK: [[ICMP:%[0-9]+]]:gpr(s32) = G_ICMP intpred(ne), [[COPY]](s32), [[COPY]]
    ; CHECK: [[TRUNC:%[0-9]+]]:gpr(s1) = G_TRUNC [[ICMP]](s32)
    %0(s32) = COPY %w0
    %1(s32) = G_ICMP intpred(ne), %0, %0
    %2(s1) = G_TRUNC %1(s32)
...

---
name:            test_icmp_p0
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body: |
  bb.0:
    liveins: %x0
    ; CHECK-LABEL: name: test_icmp_p0
    ; CHECK: [[COPY:%[0-9]+]]:gpr(p0) = COPY %x0
    ; CHECK: [[ICMP:%[0-9]+]]:gpr(s32) = G_ICMP intpred(ne), [[COPY]](p0), [[COPY]]
    ; CHECK: [[TRUNC:%[0-9]+]]:gpr(s1) = G_TRUNC [[ICMP]](s32)
    %0(p0) = COPY %x0
    %1(s32) = G_ICMP intpred(ne), %0, %0
    %2(s1) = G_TRUNC %1(s32)
...

---
name:            test_frame_index_p0
legalized:       true
registers:
  - { id: 0, class: _ }
stack:
  - { id: 0, name: ptr0, offset: 0, size: 8, alignment: 8 }
body: |
  bb.0:
    ; CHECK-LABEL: name: test_frame_index_p0
    ; CHECK: [[FRAME_INDEX:%[0-9]+]]:gpr(p0) = G_FRAME_INDEX %stack.0.ptr0
    %0(p0) = G_FRAME_INDEX %stack.0.ptr0
...

---
name:            test_ptrtoint_s64_p0
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %x0
    ; CHECK-LABEL: name: test_ptrtoint_s64_p0
    ; CHECK: [[COPY:%[0-9]+]]:gpr(p0) = COPY %x0
    ; CHECK: [[PTRTOINT:%[0-9]+]]:gpr(s64) = G_PTRTOINT [[COPY]](p0)
    %0(p0) = COPY %x0
    %1(s64) = G_PTRTOINT %0
...

---
name:            test_inttoptr_p0_s64
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %x0
    ; CHECK-LABEL: name: test_inttoptr_p0_s64
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s64) = COPY %x0
    ; CHECK: [[INTTOPTR:%[0-9]+]]:gpr(p0) = G_INTTOPTR [[COPY]](s64)
    %0(s64) = COPY %x0
    %1(p0) = G_INTTOPTR %0
...

---
name:            test_load_s32_p0
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %x0
    ; CHECK-LABEL: name: test_load_s32_p0
    ; CHECK: [[COPY:%[0-9]+]]:gpr(p0) = COPY %x0
    ; CHECK: [[LOAD:%[0-9]+]]:gpr(s32) = G_LOAD [[COPY]](p0) :: (load 4)
    %0(p0) = COPY %x0
    %1(s32) = G_LOAD %0 :: (load 4)
...

---
name:            test_store_s32_p0
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %x0, %w1
    ; CHECK-LABEL: name: test_store_s32_p0
    ; CHECK: [[COPY:%[0-9]+]]:gpr(p0) = COPY %x0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr(s32) = COPY %w1
    ; CHECK: G_STORE [[COPY1]](s32), [[COPY]](p0) :: (store 4)
    %0(p0) = COPY %x0
    %1(s32) = COPY %w1
    G_STORE %1, %0 :: (store 4)
...

---
name:            test_fadd_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %s0
    ; CHECK-LABEL: name: test_fadd_s32
    ; CHECK: [[COPY:%[0-9]+]]:fpr(s32) = COPY %s0
    ; CHECK: [[FADD:%[0-9]+]]:fpr(s32) = G_FADD [[COPY]], [[COPY]]
    %0(s32) = COPY %s0
    %1(s32) = G_FADD %0, %0
...

---
name:            test_fsub_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %s0
    ; CHECK-LABEL: name: test_fsub_s32
    ; CHECK: [[COPY:%[0-9]+]]:fpr(s32) = COPY %s0
    ; CHECK: [[FSUB:%[0-9]+]]:fpr(s32) = G_FSUB [[COPY]], [[COPY]]
    %0(s32) = COPY %s0
    %1(s32) = G_FSUB %0, %0
...

---
name:            test_fmul_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %s0
    ; CHECK-LABEL: name: test_fmul_s32
    ; CHECK: [[COPY:%[0-9]+]]:fpr(s32) = COPY %s0
    ; CHECK: [[FMUL:%[0-9]+]]:fpr(s32) = G_FMUL [[COPY]], [[COPY]]
    %0(s32) = COPY %s0
    %1(s32) = G_FMUL %0, %0
...

---
name:            test_fdiv_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %s0
    ; CHECK-LABEL: name: test_fdiv_s32
    ; CHECK: [[COPY:%[0-9]+]]:fpr(s32) = COPY %s0
    ; CHECK: [[FDIV:%[0-9]+]]:fpr(s32) = G_FDIV [[COPY]], [[COPY]]
    %0(s32) = COPY %s0
    %1(s32) = G_FDIV %0, %0
...

---
name:            test_fpext_s64_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %s0
    ; CHECK-LABEL: name: test_fpext_s64_s32
    ; CHECK: [[COPY:%[0-9]+]]:fpr(s32) = COPY %s0
    ; CHECK: [[FPEXT:%[0-9]+]]:fpr(s64) = G_FPEXT [[COPY]](s32)
    %0(s32) = COPY %s0
    %1(s64) = G_FPEXT %0
...

---
name:            test_fptrunc_s32_s64
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %d0
    ; CHECK-LABEL: name: test_fptrunc_s32_s64
    ; CHECK: [[COPY:%[0-9]+]]:fpr(s64) = COPY %d0
    ; CHECK: [[FPTRUNC:%[0-9]+]]:fpr(s32) = G_FPTRUNC [[COPY]](s64)
    %0(s64) = COPY %d0
    %1(s32) = G_FPTRUNC %0
...

---
name:            test_fconstant_s32
legalized:       true
registers:
  - { id: 0, class: _ }
body: |
  bb.0:
    ; CHECK-LABEL: name: test_fconstant_s32
    ; CHECK: [[C:%[0-9]+]]:fpr(s32) = G_FCONSTANT float 1.000000e+00
    %0(s32) = G_FCONSTANT float 1.0
...

---
name:            test_fcmp_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body: |
  bb.0:
    liveins: %s0
    ; CHECK-LABEL: name: test_fcmp_s32
    ; CHECK: [[COPY:%[0-9]+]]:fpr(s32) = COPY %s0
    ; CHECK: [[FCMP:%[0-9]+]]:gpr(s32) = G_FCMP floatpred(olt), [[COPY]](s32), [[COPY]]
    ; CHECK: [[TRUNC:%[0-9]+]]:gpr(s1) = G_TRUNC [[FCMP]](s32)
    %0(s32) = COPY %s0
    %1(s32) = G_FCMP floatpred(olt), %0, %0
    %2(s1) = G_TRUNC %1(s32)
...

---
name:            test_sitofp_s64_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %w0
    ; CHECK-LABEL: name: test_sitofp_s64_s32
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s32) = COPY %w0
    ; CHECK: [[SITOFP:%[0-9]+]]:fpr(s64) = G_SITOFP [[COPY]](s32)
    %0(s32) = COPY %w0
    %1(s64) = G_SITOFP %0
...

---
name:            test_uitofp_s32_s64
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %x0
    ; CHECK-LABEL: name: test_uitofp_s32_s64
    ; CHECK: [[COPY:%[0-9]+]]:gpr(s64) = COPY %x0
    ; CHECK: [[UITOFP:%[0-9]+]]:fpr(s32) = G_UITOFP [[COPY]](s64)
    %0(s64) = COPY %x0
    %1(s32) = G_UITOFP %0
...

---
name:            test_fptosi_s64_s32
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %s0
    ; CHECK-LABEL: name: test_fptosi_s64_s32
    ; CHECK: [[COPY:%[0-9]+]]:fpr(s32) = COPY %s0
    ; CHECK: [[FPTOSI:%[0-9]+]]:gpr(s64) = G_FPTOSI [[COPY]](s32)
    %0(s32) = COPY %s0
    %1(s64) = G_FPTOSI %0
...

---
name:            test_fptoui_s32_s64
legalized:       true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body: |
  bb.0:
    liveins: %d0
    ; CHECK-LABEL: name: test_fptoui_s32_s64
    ; CHECK: [[COPY:%[0-9]+]]:fpr(s64) = COPY %d0
    ; CHECK: [[FPTOUI:%[0-9]+]]:gpr(s32) = G_FPTOUI [[COPY]](s64)
    %0(s64) = COPY %d0
    %1(s32) = G_FPTOUI %0
...

---
name:            test_gphi_ptr
legalized:       true
tracksRegLiveness: true
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
  - { id: 2, class: _, preferred-register: '' }
  - { id: 3, class: _, preferred-register: '' }
  - { id: 4, class: _, preferred-register: '' }
  - { id: 5, class: _, preferred-register: '' }
body:             |
  ; CHECK-LABEL: name: test_gphi_ptr
  ; CHECK: bb.0:
  ; CHECK:   successors: %bb.1(0x40000000), %bb.2(0x40000000)
  ; CHECK:   liveins: %w2, %x0, %x1
  ; CHECK:   [[COPY:%[0-9]+]]:gpr(p0) = COPY %x0
  ; CHECK:   [[COPY1:%[0-9]+]]:gpr(p0) = COPY %x1
  ; CHECK:   [[COPY2:%[0-9]+]]:gpr(s32) = COPY %w2
  ; CHECK:   [[TRUNC:%[0-9]+]]:gpr(s1) = G_TRUNC [[COPY2]](s32)
  ; CHECK:   G_BRCOND [[TRUNC]](s1), %bb.1
  ; CHECK:   G_BR %bb.2
  ; CHECK: bb.1:
  ; CHECK:   successors: %bb.2(0x80000000)
  ; CHECK: bb.2:
  ; CHECK:   [[PHI:%[0-9]+]]:gpr(p0) = G_PHI [[COPY]](p0), %bb.0, [[COPY1]](p0), %bb.1
  ; CHECK:   %x0 = COPY [[PHI]](p0)
  ; CHECK:   RET_ReallyLR implicit %x0
  bb.0:
    successors: %bb.1, %bb.2
    liveins: %w2, %x0, %x1

    %0(p0) = COPY %x0
    %1(p0) = COPY %x1
    %4(s32) = COPY %w2
    %2(s1) = G_TRUNC %4(s32)
    G_BRCOND %2(s1), %bb.1
    G_BR %bb.2

  bb.1:
    successors: %bb.2


  bb.2:
    %3(p0) = G_PHI %0(p0), %bb.0, %1(p0), %bb.1
    %x0 = COPY %3(p0)
    RET_ReallyLR implicit %x0

...
