# RUN: llc -mtriple arm-- -run-pass=regbankselect %s -o - | FileCheck %s
# RUN: llc -mtriple thumbv7-- -run-pass=regbankselect %s -o - | FileCheck %s
--- |
  define void @test_add_s32() { ret void }
  define void @test_sub_s32() { ret void }
  define void @test_mul_s32() { ret void }

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

  define void @test_and_s32() { ret void}
  define void @test_or_s32() { ret void}
  define void @test_xor_s32() { ret void}

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

  define void @test_loads() #0 { ret void }
  define void @test_stores() #0 { ret void }

  define void @test_stack() { ret void }

  define void @test_gep() { ret void }

  define void @test_constants() { ret void }

  define void @test_inttoptr_s32() { ret void }
  define void @test_ptrtoint_s32() { ret void }

  define void @test_ctlz_s32() #3 { ret void }

  @a_global = global float 1.0
  define void @test_globals() { ret void }

  define void @test_anyext_s8_32() { ret void }
  define void @test_anyext_s16_32() { ret void }

  define void @test_trunc_s32_16() { ret void }
  define void @test_trunc_s64_32() #0 { ret void }

  define void @test_icmp_eq_s32() { ret void }
  define void @test_fcmp_one_s32() #0 { ret void }
  define void @test_fcmp_ugt_s64() #0 { ret void }

  define void @test_select_s32() { ret void }

  define void @test_br() { ret void }

  define void @test_phi_s32() { ret void }
  define void @test_phi_s64() #0 { ret void }

  define void @test_fadd_s32() #0 { ret void }
  define void @test_fadd_s64() #0 { ret void }

  define void @test_fsub_s32() #0 { ret void }
  define void @test_fsub_s64() #0 { ret void }

  define void @test_fmul_s32() #0 { ret void }
  define void @test_fmul_s64() #0 { ret void }

  define void @test_fdiv_s32() #0 { ret void }
  define void @test_fdiv_s64() #0 { ret void }

  define void @test_fneg_s32() #0 { ret void }
  define void @test_fneg_s64() #0 { ret void }

  define void @test_fma_s32() #2 { ret void }
  define void @test_fma_s64() #2 { ret void }

  define void @test_fpext_s32_to_s64() #0 { ret void }
  define void @test_fptrunc_s64_to_s32() #0 { ret void }

  define void @test_fpconst_s32() #0 { ret void }
  define void @test_fpconst_s64() #0 { ret void }

  define void @test_fptosi_s32() #0 { ret void }
  define void @test_fptosi_s64() #0 { ret void }
  define void @test_fptoui_s32() #0 { ret void }
  define void @test_fptoui_s64() #0 { ret void }

  define void @test_sitofp_s32() #0 { ret void }
  define void @test_sitofp_s64() #0 { ret void }
  define void @test_uitofp_s32() #0 { ret void }
  define void @test_uitofp_s64() #0 { ret void }

  define void @test_soft_fp_s64() #0 { ret void }

  define void @test_dbg_value() #0 { ret void }

  attributes #0 = { "target-features"="+vfp2"}
  attributes #1 = { "target-features"="+hwdiv-arm,+hwdiv" }
  attributes #2 = { "target-features"="+vfp4"}
  attributes #3 = { "target-features"="+v5t"}

  !0 = distinct !DICompileUnit(language: DW_LANG_C99, file: !1, producer: "llvm", isOptimized: false, runtimeVersion: 0, emissionKind: FullDebug, enums: !2)
  !1 = !DIFile(filename: "dbg.ll", directory: "/tmp")
  !2 = !{}
  !5 = distinct !DISubprogram(name: "test_dbg_value", scope: !1, file: !1, line: 1, type: !6, isLocal: false, isDefinition: true, scopeLine: 1, flags: DIFlagPrototyped, isOptimized: false, unit: !0, retainedNodes: !2)
  !6 = !DISubroutineType(types: !2)
  !7 = !DILocalVariable(name: "x", arg: 1, scope: !5, file: !1, line: 1, type: !8)
  !8 = !DIBasicType(name: "int", size: 32, encoding: DW_ATE_signed)
  !9 = !DILocation(line: 1, column: 1, scope: !5)
...
---
name:            test_add_s32
# CHECK-LABEL: name: test_add_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1

    %0(s32) = COPY $r0
    %1(s32) = COPY $r1
    %2(s32) = G_ADD %0, %1
    $r0 = COPY %2(s32)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_sub_s32
# CHECK-LABEL: name: test_sub_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1

    %0(s32) = COPY $r0
    %1(s32) = COPY $r1
    %2(s32) = G_SUB %0, %1
    $r0 = COPY %2(s32)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_mul_s32
# CHECK-LABEL: name: test_mul_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1

    %0(s32) = COPY $r0
    %1(s32) = COPY $r1
    %2(s32) = G_MUL %0, %1
    $r0 = COPY %2(s32)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_sdiv_s32
# CHECK-LABEL: name: test_sdiv_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1

    %0(s32) = COPY $r0
    %1(s32) = COPY $r1
    %2(s32) = G_SDIV %0, %1
    $r0 = COPY %2(s32)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_udiv_s32
# CHECK-LABEL: name: test_udiv_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1

    %0(s32) = COPY $r0
    %1(s32) = COPY $r1
    %2(s32) = G_UDIV %0, %1
    $r0 = COPY %2(s32)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_and_s32
# CHECK-LABEL: name: test_and_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1

    %0(s32) = COPY $r0
    %1(s32) = COPY $r1
    %2(s32) = G_AND %0, %1
    $r0 = COPY %2(s32)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_or_s32
# CHECK-LABEL: name: test_or_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1

    %0(s32) = COPY $r0
    %1(s32) = COPY $r1
    %2(s32) = G_OR %0, %1
    $r0 = COPY %2(s32)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_xor_s32
# CHECK-LABEL: name: test_xor_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1

    %0(s32) = COPY $r0
    %1(s32) = COPY $r1
    %2(s32) = G_XOR %0, %1
    $r0 = COPY %2(s32)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_lshr_s32
# CHECK-LABEL: name: test_lshr_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1

    %0(s32) = COPY $r0
    %1(s32) = COPY $r1
    %2(s32) = G_LSHR %0, %1
    $r0 = COPY %2(s32)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_ashr_s32
# CHECK-LABEL: name: test_ashr_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1

    %0(s32) = COPY $r0
    %1(s32) = COPY $r1
    %2(s32) = G_ASHR %0, %1
    $r0 = COPY %2(s32)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_shl_s32
# CHECK-LABEL: name: test_shl_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1

    %0(s32) = COPY $r0
    %1(s32) = COPY $r1
    %2(s32) = G_SHL %0, %1
    $r0 = COPY %2(s32)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_loads
# CHECK-LABEL: name: test_loads
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }
# CHECK: - { id: 3, class: gprb, preferred-register: '' }
# CHECK: - { id: 4, class: gprb, preferred-register: '' }
# CHECK: - { id: 5, class: gprb, preferred-register: '' }
# CHECK: - { id: 6, class: fprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
  - { id: 4, class: _ }
  - { id: 5, class: _ }
  - { id: 6, class: _ }
body:             |
  bb.0:
    liveins: $r0
    %0(p0) = COPY $r0
    %6(s64) = G_LOAD %0 :: (load 8)
    %1(s32) = G_LOAD %0 :: (load 4)
    %2(s16) = G_LOAD %0 :: (load 2)
    %3(s8)  = G_LOAD %0 :: (load 1)
    %4(s1)  = G_LOAD %0 :: (load 1)
    %5(p0)  = G_LOAD %0 :: (load 4)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_stores
# CHECK-LABEL: name: test_stores
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }
# CHECK: - { id: 3, class: gprb, preferred-register: '' }
# CHECK: - { id: 4, class: gprb, preferred-register: '' }
# CHECK: - { id: 5, class: gprb, preferred-register: '' }
# CHECK: - { id: 6, class: fprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
  - { id: 4, class: _ }
  - { id: 5, class: _ }
  - { id: 6, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1, $r5, $d6
    %0(p0) = COPY $r0
    %1(s32) = COPY $r1
    G_STORE %1(s32), %0 :: (store 4)
    %2(s16) = G_TRUNC %1(s32)
    G_STORE %2(s16), %0 :: (store 2)
    %3(s8) = G_TRUNC %1(s32)
    G_STORE %3(s8), %0 :: (store 1)
    %4(s1) = G_TRUNC %1(s32)
    G_STORE %4(s1), %0 :: (store 1)
    %5(p0) = COPY $r5
    G_STORE %5(p0), %0 :: (store 4)
    %6(s64) = COPY $d6
    G_STORE %6(s64), %0 :: (store 8)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_stack
# CHECK-LABEL: name: test_stack
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }
# CHECK: - { id: 3, class: gprb, preferred-register: '' }
# CHECK: - { id: 4, class: gprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
  - { id: 4, class: _ }
fixedStack:
  - { id: 0, offset: 0, size: 4, alignment: 4, isImmutable: true, isAliased: false }
body:             |
  bb.0:
    %0(p0) = G_FRAME_INDEX %fixed-stack.0
    %1(s32) = G_LOAD %0(p0) :: (load 4 from %fixed-stack.0, align 4)

    %2(p0) = COPY $sp
    %3(s32) = G_CONSTANT i32 8
    %4(p0) = G_GEP %2, %3(s32)
    G_STORE %1(s32), %4(p0) :: (store 4)

    BX_RET 14, $noreg

...
---
name:            test_gep
# CHECK-LABEL: name: test_gep
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1

    %0(p0) = COPY $r0
    %1(s32) = COPY $r1
    %2(p0) = G_GEP %0, %1(s32)
    $r0 = COPY %2(p0)
    BX_RET 14, $noreg, implicit $r0
...
---
name:            test_constants
# CHECK-LABEL: name: test_constants
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
body:             |
  bb.0:
    %0(s32) = G_CONSTANT i32 42
    $r0 = COPY %0(s32)
    BX_RET 14, $noreg, implicit $r0
...
---
name:            test_inttoptr_s32
# CHECK-LABEL: name: test_inttoptr_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.0:
    %0(s32) = COPY $r0
    %1(p0) = G_INTTOPTR %0(s32)
    $r0 = COPY %1(p0)
    BX_RET 14, $noreg, implicit $r0
...
---
name:            test_ptrtoint_s32
# CHECK-LABEL: name: test_ptrtoint_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.0:
    %0(p0) = COPY $r0
    %1(s32) = G_PTRTOINT %0(p0)
    $r0 = COPY %1(s32)
    BX_RET 14, $noreg, implicit $r0
...
---
name:            test_ctlz_s32
# CHECK-LABEL: name: test_ctlz_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.0:
    %0(s32) = COPY $r0
    %1(s32) = G_CTLZ %0(s32)
    $r0 = COPY %1(s32)
    BX_RET 14, $noreg, implicit $r0
...
---
name:            test_globals
# CHECK-LABEL: name: test_globals
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
body:             |
  bb.0:
    %0(p0) = G_GLOBAL_VALUE @a_global
    $r0 = COPY %0(p0)
    BX_RET 14, $noreg, implicit $r0
...
---
name:            test_anyext_s8_32
# CHECK-LABEL: name: test_anyext_s8_32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $r0

    %0(s32) = COPY $r0
    %1(s8) = G_TRUNC %0(s32)
    %2(s32) = G_ANYEXT %1(s8)
    $r0 = COPY %2(s32)
    BX_RET 14, $noreg, implicit $r0
...
---
name:            test_anyext_s16_32
# CHECK-LABEL: name: test_anyext_s16_32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $r0

    %0(s32) = COPY $r0
    %1(s16) = G_TRUNC %0(s32)
    %2(s32) = G_ANYEXT %1(s16)
    $r0 = COPY %2(s32)
    BX_RET 14, $noreg, implicit $r0
...
---
name:            test_trunc_s32_16
# CHECK-LABEL: name: test_trunc_s32_16
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1

    %0(s32) = COPY $r0
    %2(p0) = COPY $r1
    %1(s16) = G_TRUNC %0(s32)
    G_STORE %1(s16), %2 :: (store 2)
    BX_RET 14, $noreg
...
---
name:            test_trunc_s64_32
# CHECK-LABEL: name: test_trunc_s64_32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $r0, $d0

    %0(s64) = COPY $d0
    %2(p0) = COPY $r0
    %1(s32) = G_TRUNC %0(s64)
    G_STORE %1(s32), %2 :: (store 4)
    BX_RET 14, $noreg
...
---
name:            test_icmp_eq_s32
# CHECK-LABEL: name: test_icmp_eq_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }
# CHECK: - { id: 3, class: gprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1

    %0(s32) = COPY $r0
    %1(s32) = COPY $r1
    %2(s1) = G_ICMP intpred(eq), %0(s32), %1
    %3(s32) = G_ZEXT %2(s1)
    $r0 = COPY %3(s32)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_fcmp_one_s32
# CHECK-LABEL: name: test_fcmp_one_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }
# CHECK: - { id: 3, class: gprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
body:             |
  bb.0:
    liveins: $s0, $s1

    %0(s32) = COPY $s0
    %1(s32) = COPY $s1
    %2(s1) = G_FCMP floatpred(one), %0(s32), %1
    %3(s32) = G_ZEXT %2(s1)
    $r0 = COPY %3(s32)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_fcmp_ugt_s64
# CHECK-LABEL: name: test_fcmp_ugt_s64
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }
# CHECK: - { id: 3, class: gprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
body:             |
  bb.0:
    liveins: $d0, $d1

    %0(s64) = COPY $d0
    %1(s64) = COPY $d1
    %2(s1) = G_FCMP floatpred(ugt), %0(s64), %1
    %3(s32) = G_ZEXT %2(s1)
    $r0 = COPY %3(s32)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_select_s32
# CHECK-LABEL: name: test_select_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: gprb, preferred-register: '' }
# CHECK: - { id: 3, class: gprb, preferred-register: '' }
# CHECK: - { id: 4, class: gprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
  - { id: 4, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1, $r2

    %0(s32) = COPY $r0
    %1(s32) = COPY $r1
    %2(s32) = COPY $r2
    %3(s1) = G_TRUNC %2(s32)
    %4(s32) = G_SELECT %3(s1), %0, %1
    $r0 = COPY %4(s32)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_br
# CHECK-LABEL: name: test_br
legalized:       true
regBankSelected: false
# CHECK: regBankSelected: true
selected:        false
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
# CHECK: { id: 0, class: gprb, preferred-register: '' }
# CHECK: { id: 1, class: gprb, preferred-register: '' }
# Check that we map the condition of the G_BRCOND into the GPR.
# For the G_BR, there are no registers to map, but make sure we don't crash.
body:             |
  bb.0:
    successors: %bb.1(0x40000000), %bb.2(0x40000000)
    liveins: $r0

    %0(s32) = COPY $r0
    %1(s1) = G_TRUNC %0(s32)
    G_BRCOND %1(s1), %bb.1
    G_BR %bb.2

  bb.1:
    BX_RET 14, $noreg

  bb.2:
    BX_RET 14, $noreg

...
---
name:            test_phi_s32
# CHECK-LABEL: name: test_phi_s32
legalized:       true
regBankSelected: false
# CHECK: regBankSelected: true
selected:        false
tracksRegLiveness: true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
  - { id: 4, class: _ }
# CHECK: { id: 0, class: gprb, preferred-register: '' }
# CHECK: { id: 1, class: gprb, preferred-register: '' }
# CHECK: { id: 2, class: gprb, preferred-register: '' }
# CHECK: { id: 3, class: gprb, preferred-register: '' }
# CHECK: { id: 4, class: gprb, preferred-register: '' }
body:             |
  bb.0:
    successors: %bb.1(0x40000000), %bb.2(0x40000000)
    liveins: $r0, $r1, $r2

    %0(s32) = COPY $r0
    %1(s1) = G_TRUNC %0(s32)

    %2(s32) = COPY $r1
    %3(s32) = COPY $r2

    G_BRCOND %1(s1), %bb.1
    G_BR %bb.2

  bb.1:
    successors: %bb.2(0x80000000)

  bb.2:
    %4(s32) = G_PHI %2(s32), %bb.0, %3(s32), %bb.1
    $r0 = COPY %4(s32)
    BX_RET 14, $noreg, implicit $r0
...
---
name:            test_phi_s64
# CHECK-LABEL: name: test_phi_s64
legalized:       true
regBankSelected: false
# CHECK: regBankSelected: true
selected:        false
tracksRegLiveness: true
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
  - { id: 4, class: _ }
# CHECK: { id: 0, class: gprb, preferred-register: '' }
# CHECK: { id: 1, class: gprb, preferred-register: '' }
# CHECK: { id: 2, class: fprb, preferred-register: '' }
# CHECK: { id: 3, class: fprb, preferred-register: '' }
# CHECK: { id: 4, class: fprb, preferred-register: '' }
body:             |
  bb.0:
    successors: %bb.1(0x40000000), %bb.2(0x40000000)
    liveins: $r0, $d0, $d1

    %0(s32) = COPY $r0
    %1(s1) = G_TRUNC %0(s32)

    %2(s64) = COPY $d0
    %3(s64) = COPY $d1

    G_BRCOND %1(s1), %bb.1
    G_BR %bb.2

  bb.1:
    successors: %bb.2(0x80000000)

  bb.2:
    %4(s64) = G_PHI %2(s64), %bb.0, %3(s64), %bb.1
    $d0 = COPY %4(s64)
    BX_RET 14, $noreg, implicit $d0
...
---
name:            test_fadd_s32
# CHECK-LABEL: name: test_fadd_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
# CHECK: - { id: 2, class: fprb, preferred-register: '' }

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

    %0(s32) = COPY $s0
    %1(s32) = COPY $s1
    %2(s32) = G_FADD %0, %1
    $s0 = COPY %2(s32)
    BX_RET 14, $noreg, implicit $s0

...
---
name:            test_fadd_s64
# CHECK-LABEL: name: test_fadd_s64
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
# CHECK: - { id: 2, class: fprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $d0, $d1

    %0(s64) = COPY $d0
    %1(s64) = COPY $d1
    %2(s64) = G_FADD %0, %1
    $d0 = COPY %2(s64)
    BX_RET 14, $noreg, implicit $d0

...
---
name:            test_fsub_s32
# CHECK-LABEL: name: test_fsub_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
# CHECK: - { id: 2, class: fprb, preferred-register: '' }

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

    %0(s32) = COPY $s0
    %1(s32) = COPY $s1
    %2(s32) = G_FSUB %0, %1
    $s0 = COPY %2(s32)
    BX_RET 14, $noreg, implicit $s0

...
---
name:            test_fsub_s64
# CHECK-LABEL: name: test_fsub_s64
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
# CHECK: - { id: 2, class: fprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $d0, $d1

    %0(s64) = COPY $d0
    %1(s64) = COPY $d1
    %2(s64) = G_FSUB %0, %1
    $d0 = COPY %2(s64)
    BX_RET 14, $noreg, implicit $d0

...
---
name:            test_fmul_s32
# CHECK-LABEL: name: test_fmul_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
# CHECK: - { id: 2, class: fprb, preferred-register: '' }

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

    %0(s32) = COPY $s0
    %1(s32) = COPY $s1
    %2(s32) = G_FMUL %0, %1
    $s0 = COPY %2(s32)
    BX_RET 14, $noreg, implicit $s0

...
---
name:            test_fmul_s64
# CHECK-LABEL: name: test_fmul_s64
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
# CHECK: - { id: 2, class: fprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $d0, $d1

    %0(s64) = COPY $d0
    %1(s64) = COPY $d1
    %2(s64) = G_FMUL %0, %1
    $d0 = COPY %2(s64)
    BX_RET 14, $noreg, implicit $d0

...
---
name:            test_fdiv_s32
# CHECK-LABEL: name: test_fdiv_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
# CHECK: - { id: 2, class: fprb, preferred-register: '' }

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

    %0(s32) = COPY $s0
    %1(s32) = COPY $s1
    %2(s32) = G_FDIV %0, %1
    $s0 = COPY %2(s32)
    BX_RET 14, $noreg, implicit $s0

...
---
name:            test_fdiv_s64
# CHECK-LABEL: name: test_fdiv_s64
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
# CHECK: - { id: 2, class: fprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.0:
    liveins: $d0, $d1

    %0(s64) = COPY $d0
    %1(s64) = COPY $d1
    %2(s64) = G_FDIV %0, %1
    $d0 = COPY %2(s64)
    BX_RET 14, $noreg, implicit $d0

...
---
name:            test_fneg_s32
# CHECK-LABEL: name: test_fneg_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.0:
    liveins: $s0

    %0(s32) = COPY $s0
    %1(s32) = G_FNEG %0
    $s0 = COPY %1(s32)
    BX_RET 14, $noreg, implicit $s0

...
---
name:            test_fneg_s64
# CHECK-LABEL: name: test_fneg_s64
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.0:
    liveins: $d0

    %0(s64) = COPY $d0
    %1(s64) = G_FNEG %0
    $d0 = COPY %1(s64)
    BX_RET 14, $noreg, implicit $d0

...
---
name:            test_fma_s32
# CHECK-LABEL: name: test_fma_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
# CHECK: - { id: 2, class: fprb, preferred-register: '' }
# CHECK: - { id: 3, class: fprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
body:             |
  bb.0:
    liveins: $s0, $s1, $s2

    %0(s32) = COPY $s0
    %1(s32) = COPY $s1
    %2(s32) = COPY $s2
    %3(s32) = G_FMA %0, %1, %2
    $s0 = COPY %3(s32)
    BX_RET 14, $noreg, implicit $s0
...
---
name:            test_fma_s64
# CHECK-LABEL: name: test_fma_s64
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
# CHECK: - { id: 2, class: fprb, preferred-register: '' }
# CHECK: - { id: 3, class: fprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
body:             |
  bb.0:
    liveins: $d0, $d1, $d2

    %0(s64) = COPY $d0
    %1(s64) = COPY $d1
    %2(s64) = COPY $d2
    %3(s64) = G_FMA %0, %1, %2
    $d0 = COPY %3(s64)
    BX_RET 14, $noreg, implicit $d0
...
---
name:            test_fpext_s32_to_s64
# CHECK-LABEL: name: test_fpext_s32_to_s64
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.0:
    liveins: $s0

    %0(s32) = COPY $s0
    %1(s64) = G_FPEXT %0
    $d0 = COPY %1(s64)
    BX_RET 14, $noreg, implicit $d0
...
---
name:            test_fptrunc_s64_to_s32
# CHECK-LABEL: name: test_fptrunc_s64_to_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.0:
    liveins: $d0

    %0(s64) = COPY $d0
    %1(s32) = G_FPTRUNC %0
    $s0 = COPY %1(s32)
    BX_RET 14, $noreg, implicit $s0
...
---
name:            test_fpconst_s32
# CHECK-LABEL: name: test_fpconst_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
body:             |
  bb.0:
    liveins:

    %0(s32) = G_FCONSTANT float -1.25
    $s0 = COPY %0(s32)
    BX_RET 14, $noreg, implicit $s0
...
---
name:            test_fpconst_s64
# CHECK-LABEL: name: test_fpconst_s64
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
body:             |
  bb.0:
    liveins:

    %0(s64) = G_FCONSTANT double -2.4
    $d0 = COPY %0(s64)
    BX_RET 14, $noreg, implicit $d0
...
---
name:            test_fptosi_s32
# CHECK-LABEL: name: test_fptosi_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.0:
    liveins: $s0

    %0(s32) = COPY $s0
    %1(s32) = G_FPTOSI %0
    $r0 = COPY %1(s32)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_fptosi_s64
# CHECK-LABEL: name: test_fptosi_s64
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.0:
    liveins: $d0

    %0(s64) = COPY $d0
    %1(s32) = G_FPTOSI %0
    $r0 = COPY %1(s32)
    BX_RET 14, $noreg, implicit $r0
...
---
name:            test_fptoui_s32
# CHECK-LABEL: name: test_fptoui_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.0:
    liveins: $s0

    %0(s32) = COPY $s0
    %1(s32) = G_FPTOUI %0
    $r0 = COPY %1(s32)
    BX_RET 14, $noreg, implicit $r0

...
---
name:            test_fptoui_s64
# CHECK-LABEL: name: test_fptoui_s64
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: fprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.0:
    liveins: $d0

    %0(s64) = COPY $d0
    %1(s32) = G_FPTOUI %0
    $r0 = COPY %1(s32)
    BX_RET 14, $noreg, implicit $r0
...
---
name:            test_sitofp_s32
# CHECK-LABEL: name: test_sitofp_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.0:
    liveins: $r0

    %0(s32) = COPY $r0
    %1(s32) = G_SITOFP %0
    $s0 = COPY %1(s32)
    BX_RET 14, $noreg, implicit $s0

...
---
name:            test_sitofp_s64
# CHECK-LABEL: name: test_sitofp_s64
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.0:
    liveins: $r0

    %0(s32) = COPY $r0
    %1(s64) = G_SITOFP %0
    $d0 = COPY %1(s64)
    BX_RET 14, $noreg, implicit $d0
...
---
name:            test_uitofp_s32
# CHECK-LABEL: name: test_uitofp_s32
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.0:
    liveins: $r0

    %0(s32) = COPY $r0
    %1(s32) = G_UITOFP %0
    $s0 = COPY %1(s32)
    BX_RET 14, $noreg, implicit $s0

...
---
name:            test_uitofp_s64
# CHECK-LABEL: name: test_uitofp_s64
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: fprb, preferred-register: '' }
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.0:
    liveins: $r0

    %0(s32) = COPY $r0
    %1(s64) = G_UITOFP %0
    $d0 = COPY %1(s64)
    BX_RET 14, $noreg, implicit $d0
...
---
name:            test_soft_fp_s64
# CHECK-LABEL: name: test_soft_fp_s64
legalized:       true
regBankSelected: false
selected:        false
# CHECK: registers:
# CHECK: - { id: 0, class: gprb, preferred-register: '' }
# CHECK: - { id: 1, class: gprb, preferred-register: '' }
# CHECK: - { id: 2, class: fprb, preferred-register: '' }
# CHECK: - { id: 3, class: gprb, preferred-register: '' }
# CHECK: - { id: 4, class: gprb, preferred-register: '' }

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
  - { id: 4, class: _ }
body:             |
  bb.0:
    liveins: $r0, $r1

    %0(s32) = COPY $r0
    %1(s32) = COPY $r1
    %2(s64) = G_MERGE_VALUES %0(s32), %1(s32)
    %3(s32), %4(s32) = G_UNMERGE_VALUES %2(s64)
    $r0 = COPY %3(s32)
    $r1 = COPY %4(s32)
    BX_RET 14, $noreg, implicit $r0, implicit $r1

...
---
name:            test_dbg_value
# CHECK-LABEL: name: test_dbg_value
legalized:       true
regBankSelected: false
selected:        false

registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
  - { id: 3, class: _ }
  - { id: 4, class: _ }
  - { id: 5, class: _ }
body:             |
  bb.0:
    liveins: $r0, $s1, $d2

    %0(s32) = COPY $r0

    ; CHECK: {{%[0-9]+}}:gprb(s32) = G_ADD
    %1(s32) = G_ADD %0, %0

    ; CHECK: DBG_VALUE {{%[0-9]+}}(s32), $noreg
    DBG_VALUE %1(s32), $noreg, !7, !DIExpression(), debug-location !9

    $r0 = COPY %1(s32)

    %2(s32) = COPY $s1

    ; CHECK: {{%[0-9]+}}:fprb(s32) = G_FADD
    %3(s32) = G_FADD %2, %2

    ; CHECK: DBG_VALUE {{%[0-9]+}}(s32), $noreg
    DBG_VALUE %3(s32), $noreg, !7, !DIExpression(), debug-location !9

    $s1 = COPY %3(s32)

    %4(s64) = COPY $d2

    ; CHECK: {{%[0-9]+}}:fprb(s64) = G_FADD
    %5(s64) = G_FADD %4, %4

    ; CHECK: DBG_VALUE {{%[0-9]+}}(s64), $noreg
    DBG_VALUE %5(s64), $noreg, !7, !DIExpression(), debug-location !9

    $d2 = COPY %5(s64)

    ; CHECK: DBG_VALUE i32 42, 0
    DBG_VALUE i32 42, 0, !7, !DIExpression(), debug-location !9

    ; CHECK: DBG_VALUE float 1.000000e+00, 0
    DBG_VALUE float 1.000000e+00, 0, !7, !DIExpression(), debug-location !9

    ; CHECK: DBG_VALUE $noreg, 0
    DBG_VALUE $noreg, 0, !7, !DIExpression(), debug-location !9

    $d2 = COPY %5(s64)
    BX_RET 14, $noreg, implicit $r0, implicit $s1, implicit $d2

...
