# RUN: llc -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 @anyext_s64_from_s32() { ret void }
  define void @anyext_s32_from_s8() { ret void }

  define void @zext_s64_from_s32() { ret void }
  define void @zext_s32_from_s16() { ret void }
  define void @zext_s32_from_s8() { ret void }
  define void @zext_s16_from_s8() { ret void }

  define void @sext_s64_from_s32() { ret void }
  define void @sext_s32_from_s16() { ret void }
  define void @sext_s32_from_s8() { ret void }
  define void @sext_s16_from_s8() { ret void }
...

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

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

# CHECK:  body:
# CHECK:    %0 = COPY %w0
# CHECK:    %2 = SUBREG_TO_REG 0, %0, 15
# CHECK:    %1 = COPY %2
body:             |
  bb.0:
    liveins: %w0

    %0(s32) = COPY %w0
    %1(s64) = G_ANYEXT %0
    %x0 = COPY %1(s64)
...

---
# CHECK-LABEL: name: anyext_s32_from_s8
name:            anyext_s32_from_s8
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(s8) = COPY %w0
    %1(s32) = G_ANYEXT %0
    %w0 = COPY %1(s32)
...

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

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

# CHECK:  body:
# CHECK:    %0 = COPY %w0
# CHECK:    %2 = SUBREG_TO_REG 0, %0, 15
# CHECK:    %1 = UBFMXri %2, 0, 31
body:             |
  bb.0:
    liveins: %w0

    %0(s32) = COPY %w0
    %1(s64) = G_ZEXT %0
    %x0 = COPY %1(s64)
...

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

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

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

    %0(s16) = COPY %w0
    %1(s32) = G_ZEXT %0
    %w0 = COPY %1
...

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

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

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

    %0(s8) = COPY %w0
    %1(s32) = G_ZEXT %0
    %w0 = COPY %1(s32)
...

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

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

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

    %0(s8) = COPY %w0
    %1(s16) = G_ZEXT %0
    %w0 = COPY %1(s16)
...

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

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

# CHECK:  body:
# CHECK:    %0 = COPY %w0
# CHECK:    %2 = SUBREG_TO_REG 0, %0, 15
# CHECK:    %1 = SBFMXri %2, 0, 31
body:             |
  bb.0:
    liveins: %w0

    %0(s32) = COPY %w0
    %1(s64) = G_SEXT %0
    %x0 = COPY %1(s64)
...

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

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

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

    %0(s16) = COPY %w0
    %1(s32) = G_SEXT %0
    %w0 = COPY %1
...

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

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

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

    %0(s8) = COPY %w0
    %1(s32) = G_SEXT %0
    %w0 = COPY %1(s32)
...

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

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

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

    %0(s8) = COPY %w0
    %1(s16) = G_SEXT %0
    %w0 = COPY %1(s16)
...
