# RUN: llc -mtriple=i386-linux-gnu   -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=ALL --check-prefix=X32
# RUN: llc -mtriple=x86_64-linux-gnu -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=ALL --check-prefix=X64

--- |

  define void @test_copy() {
    ret void
  }

  define void @test_copy2() {
    ret void
  }

  define void @test_copy3() {
    ret void
  }

  define void @test_copy4() {
    ret void
  }

  define void @test_copy5() {
    ret void
  }

  define void @test_copy6() {
    ret void
  }

...
---
name:            test_copy
# ALL-LABEL: name:  test_copy
alignment:       16
legalized:       true
regBankSelected: true
# ALL:      registers:
# ALL-NEXT:   - { id: 0, class: gr8, preferred-register: '' }
# ALL-NEXT:   - { id: 1, class: gr32, preferred-register: '' }
registers:
  - { id: 0, class: gpr, preferred-register: '' }
  - { id: 1, class: gpr, preferred-register: '' }
# ALL           %0:gr8 = COPY $al
# ALL-NEXT      %1:gr32 = MOVZX32rr8 %0
# ALL-NEXT      $eax = COPY %1
# ALL-NEXT      RET 0, implicit $eax
body:             |
  bb.1 (%ir-block.0):
    liveins: $eax

    %0(s8) = COPY $al
    %1(s32) = G_ZEXT %0(s8)
    $eax = COPY %1(s32)
    RET 0, implicit $eax

...
---
name:            test_copy2
# ALL-LABEL: name:  test_copy2
alignment:       16
legalized:       true
regBankSelected: true
# ALL:      registers:
# ALL-NEXT:   - { id: 0, class: gr8, preferred-register: '' }
# ALL-NEXT:   - { id: 1, class: gr32, preferred-register: '' }
registers:
  - { id: 0, class: gpr, preferred-register: '' }
  - { id: 1, class: gpr, preferred-register: '' }
# ALL:          %0:gr8 = COPY $al
# ALL-NEXT:     %1:gr32 = MOVZX32rr8 %0
# ALL-NEXT:     $eax = COPY %1
# ALL-NEXT:     RET 0, implicit $eax
body:             |
  bb.1 (%ir-block.0):
    liveins: $eax

    %0(s8) = COPY $al
    %1(s32) = G_ZEXT %0(s8)
    $eax = COPY %1(s32)
    RET 0, implicit $eax

...
---
name:            test_copy3
# ALL-LABEL: name:  test_copy3
alignment:       16
legalized:       true
regBankSelected: true
# ALL:      registers:
# ALL-NEXT:   - { id: 0, class: gr16[[ABCD:(_abcd)?]], preferred-register: '' }
# ALL-NEXT:   - { id: 1, class: gr8, preferred-register: '' }
# ALL-NEXT:   - { id: 2, class: gr32, preferred-register: '' }
registers:
  - { id: 0, class: gpr, preferred-register: '' }
  - { id: 1, class: gpr, preferred-register: '' }
  - { id: 2, class: gpr, preferred-register: '' }
# ALL           %0:gr16 = COPY $ax
# ALL-NEXT      %1:gr8 = COPY %0.sub_8bit
# ALL-NEXT      %2:gr32 = MOVZX32rr8 %1
# ALL-NEXT      $eax = COPY %2
# ALL-NEXT      RET 0, implicit $eax
body:             |
  bb.1 (%ir-block.0):
    liveins: $eax

    %0(s16) = COPY $ax
    %1(s8) = G_TRUNC %0(s16)
    %2(s32) = G_ZEXT %1(s8)
    $eax = COPY %2(s32)
    RET 0, implicit $eax

...
---
name:            test_copy4
# ALL-LABEL: name:  test_copy4
alignment:       16
legalized:       true
regBankSelected: true
# ALL:      registers:
# ALL-NEXT:   - { id: 0, class: gr32, preferred-register: '' }
# ALL-NEXT:   - { id: 1, class: gr16, preferred-register: '' }
# ALL-NEXT:   - { id: 2, class: gr32, preferred-register: '' }
registers:
  - { id: 0, class: gpr, preferred-register: '' }
  - { id: 1, class: gpr, preferred-register: '' }
  - { id: 2, class: gpr, preferred-register: '' }
# ALL           %0:gr32 = COPY $eax
# ALL-NEXT      %1:gr16 = COPY %0.sub_16bit
# ALL-NEXT      %2:gr32 = MOVZX32rr16 %1
# ALL-NEXT      $eax = COPY %2
# ALL-NEXT      RET 0, implicit $eax
body:             |
  bb.1 (%ir-block.0):
    liveins: $eax

    %0(s32) = COPY $eax
    %1(s16) = G_TRUNC %0(s32)
    %2(s32) = G_ZEXT %1(s16)
    $eax = COPY %2(s32)
    RET 0, implicit $eax

...
---
name:            test_copy5
# ALL-LABEL: name:  test_copy5
alignment:       16
legalized:       true
regBankSelected: true
# ALL:      registers:
# ALL-NEXT:   - { id: 0, class: gr32[[ABCD:(_abcd)?]], preferred-register: '' }
# ALL-NEXT:   - { id: 1, class: gr8, preferred-register: '' }
# ALL-NEXT:   - { id: 2, class: gr32, preferred-register: '' }
registers:
  - { id: 0, class: gpr, preferred-register: '' }
  - { id: 1, class: gpr, preferred-register: '' }
  - { id: 2, class: gpr, preferred-register: '' }
# ALL           %0:gr32[[ABCD]] = COPY $edx
# ALL-NEXT      %1:gr8 = COPY %0.sub_8bit
# ALL-NEXT      %2:gr32 = MOVZX32rr8 %1
# ALL-NEXT      $eax = COPY %2
# ALL-NEXT      RET 0, implicit $eax
body:             |
  bb.1 (%ir-block.0):
    liveins: $eax,$edx

    %0(s32) = COPY $edx
    %1(s8) = G_TRUNC %0(s32)
    %2(s32) = G_ANYEXT %1(s8)
    $eax = COPY %2(s32)
    RET 0, implicit $eax

...
---
name:            test_copy6
# ALL-LABEL: name:  test_copy6
alignment:       16
legalized:       true
regBankSelected: true
# ALL:      registers:
# ALL-NEXT:   - { id: 0, class: gr32, preferred-register: '' }
# ALL-NEXT:   - { id: 1, class: gr16, preferred-register: '' }
# ALL-NEXT:   - { id: 2, class: low32_addr_access_rbp, preferred-register: '' }
# ALL-NEXT:   - { id: 3, class: low32_addr_access_rbp, preferred-register: '' }
registers:
  - { id: 0, class: gpr, preferred-register: '' }
  - { id: 1, class: gpr, preferred-register: '' }
  - { id: 2, class: gpr, preferred-register: '' }
# ALL:         %0:gr32 = COPY $edx
# ALL-NEXT:    %1:gr16 = COPY %0.sub_16bit
# ALL-NEXT:    %3:low32_addr_access_rbp = IMPLICIT_DEF
# ALL-NEXT:    %2:low32_addr_access_rbp = INSERT_SUBREG %3, %1, %subreg.sub_16bit
# ALL-NEXT:    $eax = COPY %2
# ALL-NEXT:    RET 0, implicit $eax
body:             |
  bb.1 (%ir-block.0):
    liveins: $eax,$edx

    %0(s32) = COPY $edx
    %1(s16) = G_TRUNC %0(s32)
    %2(s32) = G_ANYEXT %1(s16)
    $eax = COPY %2(s32)
    RET 0, implicit $eax

...
