# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -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 @add_s32_gpr() { ret void }
  define void @add_s64_gpr() { ret void }

  define void @add_imm_s32_gpr() { ret void }
  define void @add_imm_s64_gpr() { ret void }

  define void @add_imm_s32_gpr_bb() { ret void }

  define void @sub_s32_gpr() { ret void }
  define void @sub_s64_gpr() { ret void }

  define void @or_s32_gpr() { ret void }
  define void @or_s64_gpr() { ret void }
  define void @or_v2s32_fpr() { ret void }

  define void @and_s32_gpr() { ret void }
  define void @and_s64_gpr() { ret void }

  define void @shl_s32_gpr() { ret void }
  define void @shl_s64_gpr() { ret void }

  define void @lshr_s32_gpr() { ret void }
  define void @lshr_s64_gpr() { ret void }

  define void @ashr_s32_gpr() { ret void }
  define void @ashr_s64_gpr() { ret void }

  define void @mul_s32_gpr() { ret void }
  define void @mul_s64_gpr() { ret void }

  define void @mulh_s64_gpr() { ret void }

  define void @sdiv_s32_gpr() { ret void }
  define void @sdiv_s64_gpr() { ret void }

  define void @udiv_s32_gpr() { ret void }
  define void @udiv_s64_gpr() { ret void }

  define void @fadd_s32_fpr() { ret void }
  define void @fadd_s64_fpr() { ret void }

  define void @fsub_s32_fpr() { ret void }
  define void @fsub_s64_fpr() { ret void }

  define void @fmul_s32_fpr() { ret void }
  define void @fmul_s64_fpr() { ret void }

  define void @fdiv_s32_fpr() { ret void }
  define void @fdiv_s64_fpr() { ret void }

...

---
# Check that we select a 32-bit GPR G_ADD into ADDWrr on GPR32.
# Also check that we constrain the register class of the COPY to GPR32.
name:            add_s32_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $w0, $w1

    ; CHECK-LABEL: name: add_s32_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr32 = COPY $w1
    ; CHECK: [[ADDWrr:%[0-9]+]]:gpr32 = ADDWrr [[COPY]], [[COPY1]]
    ; CHECK: $w0 = COPY [[ADDWrr]]
    %0(s32) = COPY $w0
    %1(s32) = COPY $w1
    %2(s32) = G_ADD %0, %1
    $w0 = COPY %2(s32)
...

---
# Same as add_s32_gpr, for 64-bit operations.
name:            add_s64_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $x0, $x1

    ; CHECK-LABEL: name: add_s64_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
    ; CHECK: [[ADDXrr:%[0-9]+]]:gpr64 = ADDXrr [[COPY]], [[COPY1]]
    ; CHECK: $x0 = COPY [[ADDXrr]]
    %0(s64) = COPY $x0
    %1(s64) = COPY $x1
    %2(s64) = G_ADD %0, %1
    $x0 = COPY %2(s64)
...

---
name:            add_imm_s32_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $w0, $w1

    ; CHECK-LABEL: name: add_imm_s32_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr32sp = COPY $w0
    ; CHECK: [[ADDWri:%[0-9]+]]:gpr32sp = ADDWri [[COPY]], 1, 0
    ; CHECK: $w0 = COPY [[ADDWri]]
    %0(s32) = COPY $w0
    %1(s32) = G_CONSTANT i32 1
    %2(s32) = G_ADD %0, %1
    $w0 = COPY %2(s32)
...

---
name:            add_imm_s64_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $x0, $w1

    ; CHECK-LABEL: name: add_imm_s64_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr64sp = COPY $x0
    ; CHECK: [[ADDXri:%[0-9]+]]:gpr64sp = ADDXri [[COPY]], 1, 0
    ; CHECK: $x0 = COPY [[ADDXri]]
    %0(s64) = COPY $x0
    %1(s64) = G_CONSTANT i64 1
    %2(s64) = G_ADD %0, %1
    $x0 = COPY %2(s64)
...

---
name:            add_imm_s32_gpr_bb
legalized:       true
regBankSelected: true

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

body:             |
  ; CHECK-LABEL: name: add_imm_s32_gpr_bb
  ; CHECK: bb.0:
  ; CHECK:   successors: %bb.1(0x80000000)
  ; CHECK:   [[COPY:%[0-9]+]]:gpr32sp = COPY $w0
  ; CHECK:   B %bb.1
  ; CHECK: bb.1:
  ; CHECK:   [[ADDWri:%[0-9]+]]:gpr32sp = ADDWri [[COPY]], 1, 0
  ; CHECK:   $w0 = COPY [[ADDWri]]
  bb.0:
    liveins: $w0, $w1
    successors: %bb.1

    %0(s32) = COPY $w0
    %1(s32) = G_CONSTANT i32 1
    G_BR %bb.1

  bb.1:
    %2(s32) = G_ADD %0, %1
    $w0 = COPY %2(s32)
...

---
# Same as add_s32_gpr, for G_SUB operations.
name:            sub_s32_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $w0, $w1

    ; CHECK-LABEL: name: sub_s32_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr32 = COPY $w1
    ; CHECK: [[SUBSWrr:%[0-9]+]]:gpr32 = SUBSWrr [[COPY]], [[COPY1]], implicit-def $nzcv
    ; CHECK: $w0 = COPY [[SUBSWrr]]
    %0(s32) = COPY $w0
    %1(s32) = COPY $w1
    %2(s32) = G_SUB %0, %1
    $w0 = COPY %2(s32)
...

---
# Same as add_s64_gpr, for G_SUB operations.
name:            sub_s64_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $x0, $x1

    ; CHECK-LABEL: name: sub_s64_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
    ; CHECK: [[SUBSXrr:%[0-9]+]]:gpr64 = SUBSXrr [[COPY]], [[COPY1]], implicit-def $nzcv
    ; CHECK: $x0 = COPY [[SUBSXrr]]
    %0(s64) = COPY $x0
    %1(s64) = COPY $x1
    %2(s64) = G_SUB %0, %1
    $x0 = COPY %2(s64)
...

---
# Same as add_s32_gpr, for G_OR operations.
name:            or_s32_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $w0, $w1

    ; CHECK-LABEL: name: or_s32_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr32 = COPY $w1
    ; CHECK: [[ORRWrr:%[0-9]+]]:gpr32 = ORRWrr [[COPY]], [[COPY1]]
    ; CHECK: $w0 = COPY [[ORRWrr]]
    %0(s32) = COPY $w0
    %1(s32) = COPY $w1
    %2(s32) = G_OR %0, %1
    $w0 = COPY %2(s32)
...

---
# Same as add_s64_gpr, for G_OR operations.
name:            or_s64_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $x0, $x1

    ; CHECK-LABEL: name: or_s64_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
    ; CHECK: [[ORRXrr:%[0-9]+]]:gpr64 = ORRXrr [[COPY]], [[COPY1]]
    ; CHECK: $x0 = COPY [[ORRXrr]]
    %0(s64) = COPY $x0
    %1(s64) = COPY $x1
    %2(s64) = G_OR %0, %1
    $x0 = COPY %2(s64)
...

---
# 64-bit G_OR on vector registers.
name:            or_v2s32_fpr
legalized:       true
regBankSelected: true
#
registers:
  - { id: 0, class: fpr }
  - { id: 1, class: fpr }
  - { id: 2, class: fpr }

# The actual OR does not matter as long as it is operating
# on 64-bit width vector.
body:             |
  bb.0:
    liveins: $d0, $d1

    ; CHECK-LABEL: name: or_v2s32_fpr
    ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
    ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
    ; CHECK: [[ORRv8i8_:%[0-9]+]]:fpr64 = ORRv8i8 [[COPY]], [[COPY1]]
    ; CHECK: $d0 = COPY [[ORRv8i8_]]
      %0(<2 x s32>) = COPY $d0
      %1(<2 x s32>) = COPY $d1
      %2(<2 x s32>) = G_OR %0, %1
      $d0 = COPY %2(<2 x s32>)
...

---
# Same as add_s32_gpr, for G_AND operations.
name:            and_s32_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $w0, $w1

    ; CHECK-LABEL: name: and_s32_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr32 = COPY $w1
    ; CHECK: [[ANDWrr:%[0-9]+]]:gpr32 = ANDWrr [[COPY]], [[COPY1]]
    ; CHECK: $w0 = COPY [[ANDWrr]]
    %0(s32) = COPY $w0
    %1(s32) = COPY $w1
    %2(s32) = G_AND %0, %1
    $w0 = COPY %2(s32)
...

---
# Same as add_s64_gpr, for G_AND operations.
name:            and_s64_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $x0, $x1

    ; CHECK-LABEL: name: and_s64_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
    ; CHECK: [[ANDXrr:%[0-9]+]]:gpr64 = ANDXrr [[COPY]], [[COPY1]]
    ; CHECK: $x0 = COPY [[ANDXrr]]
    %0(s64) = COPY $x0
    %1(s64) = COPY $x1
    %2(s64) = G_AND %0, %1
    $x0 = COPY %2(s64)
...

---
# Same as add_s32_gpr, for G_SHL operations.
name:            shl_s32_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $w0, $w1

    ; CHECK-LABEL: name: shl_s32_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr32 = COPY $w1
    ; CHECK: [[LSLVWr:%[0-9]+]]:gpr32 = LSLVWr [[COPY]], [[COPY1]]
    ; CHECK: $w0 = COPY [[LSLVWr]]
    %0(s32) = COPY $w0
    %1(s32) = COPY $w1
    %2(s32) = G_SHL %0, %1
    $w0 = COPY %2(s32)
...

---
# Same as add_s64_gpr, for G_SHL operations.
name:            shl_s64_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $x0, $x1

    ; CHECK-LABEL: name: shl_s64_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
    ; CHECK: [[LSLVXr:%[0-9]+]]:gpr64 = LSLVXr [[COPY]], [[COPY1]]
    ; CHECK: $x0 = COPY [[LSLVXr]]
    %0(s64) = COPY $x0
    %1(s64) = COPY $x1
    %2(s64) = G_SHL %0, %1
    $x0 = COPY %2(s64)
...

---
# Same as add_s32_gpr, for G_LSHR operations.
name:            lshr_s32_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $w0, $w1

    ; CHECK-LABEL: name: lshr_s32_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr32 = COPY $w1
    ; CHECK: [[LSRVWr:%[0-9]+]]:gpr32 = LSRVWr [[COPY]], [[COPY1]]
    ; CHECK: $w0 = COPY [[LSRVWr]]
    %0(s32) = COPY $w0
    %1(s32) = COPY $w1
    %2(s32) = G_LSHR %0, %1
    $w0 = COPY %2(s32)
...

---
# Same as add_s64_gpr, for G_LSHR operations.
name:            lshr_s64_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $x0, $x1

    ; CHECK-LABEL: name: lshr_s64_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
    ; CHECK: [[LSRVXr:%[0-9]+]]:gpr64 = LSRVXr [[COPY]], [[COPY1]]
    ; CHECK: $x0 = COPY [[LSRVXr]]
    %0(s64) = COPY $x0
    %1(s64) = COPY $x1
    %2(s64) = G_LSHR %0, %1
    $x0 = COPY %2(s64)
...

---
# Same as add_s32_gpr, for G_ASHR operations.
name:            ashr_s32_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $w0, $w1

    ; CHECK-LABEL: name: ashr_s32_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr32 = COPY $w1
    ; CHECK: [[ASRVWr:%[0-9]+]]:gpr32 = ASRVWr [[COPY]], [[COPY1]]
    ; CHECK: $w0 = COPY [[ASRVWr]]
    %0(s32) = COPY $w0
    %1(s32) = COPY $w1
    %2(s32) = G_ASHR %0, %1
    $w0 = COPY %2(s32)
...

---
# Same as add_s64_gpr, for G_ASHR operations.
name:            ashr_s64_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $x0, $x1

    ; CHECK-LABEL: name: ashr_s64_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
    ; CHECK: [[ASRVXr:%[0-9]+]]:gpr64 = ASRVXr [[COPY]], [[COPY1]]
    ; CHECK: $x0 = COPY [[ASRVXr]]
    %0(s64) = COPY $x0
    %1(s64) = COPY $x1
    %2(s64) = G_ASHR %0, %1
    $x0 = COPY %2(s64)
...

---
# Check that we select s32 GPR G_MUL. This is trickier than other binops because
# there is only MADDWrrr, and we have to use the WZR physreg.
name:            mul_s32_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $w0, $w1

    ; CHECK-LABEL: name: mul_s32_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr32 = COPY $w1
    ; CHECK: [[MADDWrrr:%[0-9]+]]:gpr32 = MADDWrrr [[COPY]], [[COPY1]], $wzr
    ; CHECK: $w0 = COPY [[MADDWrrr]]
    %0(s32) = COPY $w0
    %1(s32) = COPY $w1
    %2(s32) = G_MUL %0, %1
    $w0 = COPY %2(s32)
...

---
# Same as mul_s32_gpr for the s64 type.
name:            mul_s64_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $x0, $x1

    ; CHECK-LABEL: name: mul_s64_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
    ; CHECK: [[MADDXrrr:%[0-9]+]]:gpr64 = MADDXrrr [[COPY]], [[COPY1]], $xzr
    ; CHECK: $x0 = COPY [[MADDXrrr]]
    %0(s64) = COPY $x0
    %1(s64) = COPY $x1
    %2(s64) = G_MUL %0, %1
    $x0 = COPY %2(s64)
...

---
# Same as mul_s32_gpr for the s64 type.
name:            mulh_s64_gpr
legalized:       true
regBankSelected: true


body:             |
  bb.0:
    liveins: $x0, $x1

    ; CHECK-LABEL: name: mulh_s64_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
    ; CHECK: [[SMULHrr:%[0-9]+]]:gpr64 = SMULHrr [[COPY]], [[COPY1]]
    ; CHECK: [[UMULHrr:%[0-9]+]]:gpr64 = UMULHrr [[COPY]], [[COPY1]]
    ; CHECK: $x0 = COPY [[SMULHrr]]
    ; CHECK: $x0 = COPY [[UMULHrr]]
    %0:gpr(s64) = COPY $x0
    %1:gpr(s64) = COPY $x1
    %2:gpr(s64) = G_SMULH %0, %1
    %3:gpr(s64) = G_UMULH %0, %1
    $x0 = COPY %2(s64)
    $x0 = COPY %3(s64)
...

---
# Same as add_s32_gpr, for G_SDIV operations.
name:            sdiv_s32_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $w0, $w1

    ; CHECK-LABEL: name: sdiv_s32_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr32 = COPY $w1
    ; CHECK: [[SDIVWr:%[0-9]+]]:gpr32 = SDIVWr [[COPY]], [[COPY1]]
    ; CHECK: $w0 = COPY [[SDIVWr]]
    %0(s32) = COPY $w0
    %1(s32) = COPY $w1
    %2(s32) = G_SDIV %0, %1
    $w0 = COPY %2(s32)
...

---
# Same as add_s64_gpr, for G_SDIV operations.
name:            sdiv_s64_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $x0, $x1

    ; CHECK-LABEL: name: sdiv_s64_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
    ; CHECK: [[SDIVXr:%[0-9]+]]:gpr64 = SDIVXr [[COPY]], [[COPY1]]
    ; CHECK: $x0 = COPY [[SDIVXr]]
    %0(s64) = COPY $x0
    %1(s64) = COPY $x1
    %2(s64) = G_SDIV %0, %1
    $x0 = COPY %2(s64)
...

---
# Same as add_s32_gpr, for G_UDIV operations.
name:            udiv_s32_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $w0, $w1

    ; CHECK-LABEL: name: udiv_s32_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr32 = COPY $w0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr32 = COPY $w1
    ; CHECK: [[UDIVWr:%[0-9]+]]:gpr32 = UDIVWr [[COPY]], [[COPY1]]
    ; CHECK: $w0 = COPY [[UDIVWr]]
    %0(s32) = COPY $w0
    %1(s32) = COPY $w1
    %2(s32) = G_UDIV %0, %1
    $w0 = COPY %2(s32)
...

---
# Same as add_s64_gpr, for G_UDIV operations.
name:            udiv_s64_gpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $x0, $x1

    ; CHECK-LABEL: name: udiv_s64_gpr
    ; CHECK: [[COPY:%[0-9]+]]:gpr64 = COPY $x0
    ; CHECK: [[COPY1:%[0-9]+]]:gpr64 = COPY $x1
    ; CHECK: [[UDIVXr:%[0-9]+]]:gpr64 = UDIVXr [[COPY]], [[COPY1]]
    ; CHECK: $x0 = COPY [[UDIVXr]]
    %0(s64) = COPY $x0
    %1(s64) = COPY $x1
    %2(s64) = G_UDIV %0, %1
    $x0 = COPY %2(s64)
...

---
# Check that we select a s32 FPR G_FADD into FADDSrr.
name:            fadd_s32_fpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $s0, $s1

    ; CHECK-LABEL: name: fadd_s32_fpr
    ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s0
    ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY $s1
    ; CHECK: [[FADDSrr:%[0-9]+]]:fpr32 = FADDSrr [[COPY]], [[COPY1]]
    ; CHECK: $s0 = COPY [[FADDSrr]]
    %0(s32) = COPY $s0
    %1(s32) = COPY $s1
    %2(s32) = G_FADD %0, %1
    $s0 = COPY %2(s32)
...

---
name:            fadd_s64_fpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $d0, $d1

    ; CHECK-LABEL: name: fadd_s64_fpr
    ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
    ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
    ; CHECK: [[FADDDrr:%[0-9]+]]:fpr64 = FADDDrr [[COPY]], [[COPY1]]
    ; CHECK: $d0 = COPY [[FADDDrr]]
    %0(s64) = COPY $d0
    %1(s64) = COPY $d1
    %2(s64) = G_FADD %0, %1
    $d0 = COPY %2(s64)
...

---
name:            fsub_s32_fpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $s0, $s1

    ; CHECK-LABEL: name: fsub_s32_fpr
    ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s0
    ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY $s1
    ; CHECK: [[FSUBSrr:%[0-9]+]]:fpr32 = FSUBSrr [[COPY]], [[COPY1]]
    ; CHECK: $s0 = COPY [[FSUBSrr]]
    %0(s32) = COPY $s0
    %1(s32) = COPY $s1
    %2(s32) = G_FSUB %0, %1
    $s0 = COPY %2(s32)
...

---
name:            fsub_s64_fpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $d0, $d1

    ; CHECK-LABEL: name: fsub_s64_fpr
    ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
    ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
    ; CHECK: [[FSUBDrr:%[0-9]+]]:fpr64 = FSUBDrr [[COPY]], [[COPY1]]
    ; CHECK: $d0 = COPY [[FSUBDrr]]
    %0(s64) = COPY $d0
    %1(s64) = COPY $d1
    %2(s64) = G_FSUB %0, %1
    $d0 = COPY %2(s64)
...

---
name:            fmul_s32_fpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $s0, $s1

    ; CHECK-LABEL: name: fmul_s32_fpr
    ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s0
    ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY $s1
    ; CHECK: [[FMULSrr:%[0-9]+]]:fpr32 = FMULSrr [[COPY]], [[COPY1]]
    ; CHECK: $s0 = COPY [[FMULSrr]]
    %0(s32) = COPY $s0
    %1(s32) = COPY $s1
    %2(s32) = G_FMUL %0, %1
    $s0 = COPY %2(s32)
...

---
name:            fmul_s64_fpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $d0, $d1

    ; CHECK-LABEL: name: fmul_s64_fpr
    ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
    ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
    ; CHECK: [[FMULDrr:%[0-9]+]]:fpr64 = FMULDrr [[COPY]], [[COPY1]]
    ; CHECK: $d0 = COPY [[FMULDrr]]
    %0(s64) = COPY $d0
    %1(s64) = COPY $d1
    %2(s64) = G_FMUL %0, %1
    $d0 = COPY %2(s64)
...

---
name:            fdiv_s32_fpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $s0, $s1

    ; CHECK-LABEL: name: fdiv_s32_fpr
    ; CHECK: [[COPY:%[0-9]+]]:fpr32 = COPY $s0
    ; CHECK: [[COPY1:%[0-9]+]]:fpr32 = COPY $s1
    ; CHECK: [[FDIVSrr:%[0-9]+]]:fpr32 = FDIVSrr [[COPY]], [[COPY1]]
    ; CHECK: $s0 = COPY [[FDIVSrr]]
    %0(s32) = COPY $s0
    %1(s32) = COPY $s1
    %2(s32) = G_FDIV %0, %1
    $s0 = COPY %2(s32)
...

---
name:            fdiv_s64_fpr
legalized:       true
regBankSelected: true

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

body:             |
  bb.0:
    liveins: $d0, $d1

    ; CHECK-LABEL: name: fdiv_s64_fpr
    ; CHECK: [[COPY:%[0-9]+]]:fpr64 = COPY $d0
    ; CHECK: [[COPY1:%[0-9]+]]:fpr64 = COPY $d1
    ; CHECK: [[FDIVDrr:%[0-9]+]]:fpr64 = FDIVDrr [[COPY]], [[COPY1]]
    ; CHECK: $d0 = COPY [[FDIVDrr]]
    %0(s64) = COPY $d0
    %1(s64) = COPY $d1
    %2(s64) = G_FDIV %0, %1
    $d0 = COPY %2(s64)
...
