# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=i386-linux-gnu   -run-pass=legalizer %s -o - | FileCheck %s --check-prefix=ALL --check-prefix=X32
# RUN: llc -mtriple=x86_64-linux-gnu -run-pass=legalizer %s -o - | FileCheck %s --check-prefix=ALL --check-prefix=X64
--- |

  define i8 @test_zext_i1toi8(i1 %a) {
    %r = zext i1 %a to i8
    ret i8 %r
  }

  define i16 @test_zext_i1toi16(i1 %a) {
    %r = zext i1 %a to i16
    ret i16 %r
  }

  define i32 @test_zext_i1(i8 %a) {
    %val = trunc i8 %a to i1
    %r = zext i1 %val to i32
    ret i32 %r
  }

  define i16 @test_zext_i8toi16(i8 %val) {
    %r = zext i8 %val to i16
    ret i16 %r
  }

  define i32 @test_zext_i8(i8 %val) {
    %r = zext i8 %val to i32
    ret i32 %r
  }

  define i32 @test_zext_i16(i16 %val) {
    %r = zext i16 %val to i32
    ret i32 %r
  }

  define i8 @test_sext_i1toi8(i1 %a) {
    %r = sext i1 %a to i8
    ret i8 %r
  }

  define i16 @test_sext_i1toi16(i1 %a) {
    %r = sext i1 %a to i16
    ret i16 %r
  }

  define i32 @test_sext_i1(i8 %a) {
    %val = trunc i8 %a to i1
    %r = sext i1 %val to i32
    ret i32 %r
  }

  define i16 @test_sext_i8toi16(i8 %val) {
    %r = sext i8 %val to i16
    ret i16 %r
  }

  define i32 @test_sext_i8(i8 %val) {
    %r = sext i8 %val to i32
    ret i32 %r
  }

  define i32 @test_sext_i16(i16 %val) {
    %r = sext i16 %val to i32
    ret i32 %r
  }

  define void @test_anyext_i1toi8(i1 %a) {
    ret void
  }

  define void @test_anyext_i1toi16(i1 %a) {
    ret void
  }

  define void @test_anyext_i1(i8 %a) {
    ret void
  }

  define void @test_anyext_i8toi16(i8 %val) {
    ret void
  }

  define void @test_anyext_i8(i8 %val) {
    ret void
  }

  define void @test_anyext_i16(i16 %val) {
    ret void
  }

...
---
name:            test_zext_i1toi8
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
  - { id: 2, class: _, preferred-register: '' }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_zext_i1toi8
    ; X32: [[COPY:%[0-9]+]]:_(s32) = COPY $edi
    ; X32: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 1
    ; X32: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32)
    ; X32: [[AND:%[0-9]+]]:_(s8) = G_AND [[TRUNC]], [[C]]
    ; X32: $al = COPY [[AND]](s8)
    ; X32: RET 0, implicit $al
    ; X64-LABEL: name: test_zext_i1toi8
    ; X64: [[COPY:%[0-9]+]]:_(s32) = COPY $edi
    ; X64: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 1
    ; X64: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32)
    ; X64: [[AND:%[0-9]+]]:_(s8) = G_AND [[TRUNC]], [[C]]
    ; X64: $al = COPY [[AND]](s8)
    ; X64: RET 0, implicit $al
    %1:_(s32) = COPY $edi
    %0:_(s1) = G_TRUNC %1(s32)
    %2:_(s8) = G_ZEXT %0(s1)
    $al = COPY %2(s8)
    RET 0, implicit $al

...
---
name:            test_zext_i1toi16
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_zext_i1toi16
    ; X32: [[COPY:%[0-9]+]]:_(s32) = COPY $edi
    ; X32: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 1
    ; X32: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)
    ; X32: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C]]
    ; X32: $ax = COPY [[AND]](s16)
    ; X32: RET 0, implicit $ax
    ; X64-LABEL: name: test_zext_i1toi16
    ; X64: [[COPY:%[0-9]+]]:_(s32) = COPY $edi
    ; X64: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 1
    ; X64: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)
    ; X64: [[AND:%[0-9]+]]:_(s16) = G_AND [[TRUNC]], [[C]]
    ; X64: $ax = COPY [[AND]](s16)
    ; X64: RET 0, implicit $ax
    %1:_(s32) = COPY $edi
    %0:_(s1) = G_TRUNC %1(s32)
    %2:_(s16) = G_ZEXT %0(s1)
    $ax = COPY %2(s16)
    RET 0, implicit $ax

...
---
name:            test_zext_i1
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_zext_i1
    ; X32: [[COPY:%[0-9]+]]:_(s8) = COPY $dil
    ; X32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
    ; X32: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY]](s8)
    ; X32: [[AND:%[0-9]+]]:_(s32) = G_AND [[ANYEXT]], [[C]]
    ; X32: $eax = COPY [[AND]](s32)
    ; X32: RET 0, implicit $eax
    ; X64-LABEL: name: test_zext_i1
    ; X64: [[COPY:%[0-9]+]]:_(s8) = COPY $dil
    ; X64: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 1
    ; X64: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY]](s8)
    ; X64: [[AND:%[0-9]+]]:_(s32) = G_AND [[ANYEXT]], [[C]]
    ; X64: $eax = COPY [[AND]](s32)
    ; X64: RET 0, implicit $eax
    %0(s8) = COPY $dil
    %1(s1) = G_TRUNC %0(s8)
    %2(s32) = G_ZEXT %1(s1)
    $eax = COPY %2(s32)
    RET 0, implicit $eax

...
---
name:            test_zext_i8toi16
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_zext_i8toi16
    ; X32: [[COPY:%[0-9]+]]:_(s8) = COPY $dil
    ; X32: [[ZEXT:%[0-9]+]]:_(s16) = G_ZEXT [[COPY]](s8)
    ; X32: $ax = COPY [[ZEXT]](s16)
    ; X32: RET 0, implicit $ax
    ; X64-LABEL: name: test_zext_i8toi16
    ; X64: [[COPY:%[0-9]+]]:_(s8) = COPY $dil
    ; X64: [[ZEXT:%[0-9]+]]:_(s16) = G_ZEXT [[COPY]](s8)
    ; X64: $ax = COPY [[ZEXT]](s16)
    ; X64: RET 0, implicit $ax
    %0(s8) = COPY $dil
    %1(s16) = G_ZEXT %0(s8)
    $ax = COPY %1(s16)
    RET 0, implicit $ax

...
---
name:            test_zext_i8
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_zext_i8
    ; X32: [[COPY:%[0-9]+]]:_(s8) = COPY $dil
    ; X32: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[COPY]](s8)
    ; X32: $eax = COPY [[ZEXT]](s32)
    ; X32: RET 0, implicit $eax
    ; X64-LABEL: name: test_zext_i8
    ; X64: [[COPY:%[0-9]+]]:_(s8) = COPY $dil
    ; X64: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[COPY]](s8)
    ; X64: $eax = COPY [[ZEXT]](s32)
    ; X64: RET 0, implicit $eax
    %0(s8) = COPY $dil
    %1(s32) = G_ZEXT %0(s8)
    $eax = COPY %1(s32)
    RET 0, implicit $eax

...
---
name:            test_zext_i16
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_zext_i16
    ; X32: [[COPY:%[0-9]+]]:_(s16) = COPY $di
    ; X32: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[COPY]](s16)
    ; X32: $eax = COPY [[ZEXT]](s32)
    ; X32: RET 0, implicit $eax
    ; X64-LABEL: name: test_zext_i16
    ; X64: [[COPY:%[0-9]+]]:_(s16) = COPY $di
    ; X64: [[ZEXT:%[0-9]+]]:_(s32) = G_ZEXT [[COPY]](s16)
    ; X64: $eax = COPY [[ZEXT]](s32)
    ; X64: RET 0, implicit $eax
    %0(s16) = COPY $di
    %1(s32) = G_ZEXT %0(s16)
    $eax = COPY %1(s32)
    RET 0, implicit $eax

...
---
name:            test_sext_i1toi8
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_sext_i1toi8
    ; X32: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 0
    ; X32: $al = COPY [[C]](s8)
    ; X32: RET 0, implicit $al
    ; X64-LABEL: name: test_sext_i1toi8
    ; X64: [[C:%[0-9]+]]:_(s8) = G_CONSTANT i8 0
    ; X64: $al = COPY [[C]](s8)
    ; X64: RET 0, implicit $al
    %0(s1) = G_IMPLICIT_DEF
    %1(s8) = G_SEXT %0(s1)
    $al = COPY %1(s8)
    RET 0, implicit $al

...
---
name:            test_sext_i1toi16
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_sext_i1toi16
    ; X32: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 0
    ; X32: $ax = COPY [[C]](s16)
    ; X32: RET 0, implicit $ax
    ; X64-LABEL: name: test_sext_i1toi16
    ; X64: [[C:%[0-9]+]]:_(s16) = G_CONSTANT i16 0
    ; X64: $ax = COPY [[C]](s16)
    ; X64: RET 0, implicit $ax
    %0(s1) = G_IMPLICIT_DEF
    %1(s16) = G_SEXT %0(s1)
    $ax = COPY %1(s16)
    RET 0, implicit $ax

...
---
name:            test_sext_i1
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_sext_i1
    ; X32: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
    ; X32: $eax = COPY [[C]](s32)
    ; X32: RET 0, implicit $eax
    ; X64-LABEL: name: test_sext_i1
    ; X64: [[C:%[0-9]+]]:_(s32) = G_CONSTANT i32 0
    ; X64: $eax = COPY [[C]](s32)
    ; X64: RET 0, implicit $eax
    %0(s1) = G_IMPLICIT_DEF
    %2(s32) = G_SEXT %0(s1)
    $eax = COPY %2(s32)
    RET 0, implicit $eax

...
---
name:            test_sext_i8toi16
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_sext_i8toi16
    ; X32: [[COPY:%[0-9]+]]:_(s8) = COPY $dil
    ; X32: [[SEXT:%[0-9]+]]:_(s16) = G_SEXT [[COPY]](s8)
    ; X32: $ax = COPY [[SEXT]](s16)
    ; X32: RET 0, implicit $ax
    ; X64-LABEL: name: test_sext_i8toi16
    ; X64: [[COPY:%[0-9]+]]:_(s8) = COPY $dil
    ; X64: [[SEXT:%[0-9]+]]:_(s16) = G_SEXT [[COPY]](s8)
    ; X64: $ax = COPY [[SEXT]](s16)
    ; X64: RET 0, implicit $ax
    %0(s8) = COPY $dil
    %1(s16) = G_SEXT %0(s8)
    $ax = COPY %1(s16)
    RET 0, implicit $ax

...
---
name:            test_sext_i8
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_sext_i8
    ; X32: [[COPY:%[0-9]+]]:_(s8) = COPY $dil
    ; X32: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[COPY]](s8)
    ; X32: $eax = COPY [[SEXT]](s32)
    ; X32: RET 0, implicit $eax
    ; X64-LABEL: name: test_sext_i8
    ; X64: [[COPY:%[0-9]+]]:_(s8) = COPY $dil
    ; X64: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[COPY]](s8)
    ; X64: $eax = COPY [[SEXT]](s32)
    ; X64: RET 0, implicit $eax
    %0(s8) = COPY $dil
    %1(s32) = G_SEXT %0(s8)
    $eax = COPY %1(s32)
    RET 0, implicit $eax

...
---
name:            test_sext_i16
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_sext_i16
    ; X32: [[COPY:%[0-9]+]]:_(s16) = COPY $di
    ; X32: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[COPY]](s16)
    ; X32: $eax = COPY [[SEXT]](s32)
    ; X32: RET 0, implicit $eax
    ; X64-LABEL: name: test_sext_i16
    ; X64: [[COPY:%[0-9]+]]:_(s16) = COPY $di
    ; X64: [[SEXT:%[0-9]+]]:_(s32) = G_SEXT [[COPY]](s16)
    ; X64: $eax = COPY [[SEXT]](s32)
    ; X64: RET 0, implicit $eax
    %0(s16) = COPY $di
    %1(s32) = G_SEXT %0(s16)
    $eax = COPY %1(s32)
    RET 0, implicit $eax

...
---
name:            test_anyext_i1toi8
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
  - { id: 2, class: _, preferred-register: '' }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_anyext_i1toi8
    ; X32: [[COPY:%[0-9]+]]:_(s32) = COPY $edi
    ; X32: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32)
    ; X32: $al = COPY [[TRUNC]](s8)
    ; X32: RET 0, implicit $al
    ; X64-LABEL: name: test_anyext_i1toi8
    ; X64: [[COPY:%[0-9]+]]:_(s32) = COPY $edi
    ; X64: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32)
    ; X64: $al = COPY [[TRUNC]](s8)
    ; X64: RET 0, implicit $al
    %0(s32) = COPY $edi
    %1(s1) = G_TRUNC %0(s32)
    %2(s8) = G_ANYEXT %1(s1)
    $al = COPY %2(s8)
    RET 0, implicit $al

...
---
name:            test_anyext_i1toi16
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
  - { id: 2, class: _, preferred-register: '' }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_anyext_i1toi16
    ; X32: [[COPY:%[0-9]+]]:_(s32) = COPY $edi
    ; X32: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)
    ; X32: $ax = COPY [[TRUNC]](s16)
    ; X32: RET 0, implicit $ax
    ; X64-LABEL: name: test_anyext_i1toi16
    ; X64: [[COPY:%[0-9]+]]:_(s32) = COPY $edi
    ; X64: [[TRUNC:%[0-9]+]]:_(s16) = G_TRUNC [[COPY]](s32)
    ; X64: $ax = COPY [[TRUNC]](s16)
    ; X64: RET 0, implicit $ax
    %0(s32) = COPY $edi
    %1(s1) = G_TRUNC %0(s32)
    %2(s16) = G_ANYEXT %1(s1)
    $ax = COPY %2(s16)
    RET 0, implicit $ax

...
---
name:            test_anyext_i1
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
  - { id: 2, class: _ }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_anyext_i1
    ; X32: [[COPY:%[0-9]+]]:_(s8) = COPY $dil
    ; X32: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY]](s8)
    ; X32: $eax = COPY [[ANYEXT]](s32)
    ; X32: RET 0, implicit $eax
    ; X64-LABEL: name: test_anyext_i1
    ; X64: [[COPY:%[0-9]+]]:_(s8) = COPY $dil
    ; X64: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY]](s8)
    ; X64: $eax = COPY [[ANYEXT]](s32)
    ; X64: RET 0, implicit $eax
    %0(s8) = COPY $dil
    %1(s1) = G_TRUNC %0(s8)
    %2(s32) = G_ANYEXT %1(s1)
    $eax = COPY %2(s32)
    RET 0, implicit $eax

...
---
name:            test_anyext_i8toi16
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_anyext_i8toi16
    ; X32: [[COPY:%[0-9]+]]:_(s8) = COPY $dil
    ; X32: [[ANYEXT:%[0-9]+]]:_(s16) = G_ANYEXT [[COPY]](s8)
    ; X32: $ax = COPY [[ANYEXT]](s16)
    ; X32: RET 0, implicit $ax
    ; X64-LABEL: name: test_anyext_i8toi16
    ; X64: [[COPY:%[0-9]+]]:_(s8) = COPY $dil
    ; X64: [[ANYEXT:%[0-9]+]]:_(s16) = G_ANYEXT [[COPY]](s8)
    ; X64: $ax = COPY [[ANYEXT]](s16)
    ; X64: RET 0, implicit $ax
    %0(s8) = COPY $dil
    %1(s16) = G_ANYEXT %0(s8)
    $ax = COPY %1(s16)
    RET 0, implicit $ax

...
---
name:            test_anyext_i8
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_anyext_i8
    ; X32: [[COPY:%[0-9]+]]:_(s8) = COPY $dil
    ; X32: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY]](s8)
    ; X32: $eax = COPY [[ANYEXT]](s32)
    ; X32: RET 0, implicit $eax
    ; X64-LABEL: name: test_anyext_i8
    ; X64: [[COPY:%[0-9]+]]:_(s8) = COPY $dil
    ; X64: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY]](s8)
    ; X64: $eax = COPY [[ANYEXT]](s32)
    ; X64: RET 0, implicit $eax
    %0(s8) = COPY $dil
    %1(s32) = G_ANYEXT %0(s8)
    $eax = COPY %1(s32)
    RET 0, implicit $eax

...
---
name:            test_anyext_i16
alignment:       16
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _ }
  - { id: 1, class: _ }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi

    ; X32-LABEL: name: test_anyext_i16
    ; X32: [[COPY:%[0-9]+]]:_(s16) = COPY $di
    ; X32: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY]](s16)
    ; X32: $eax = COPY [[ANYEXT]](s32)
    ; X32: RET 0, implicit $eax
    ; X64-LABEL: name: test_anyext_i16
    ; X64: [[COPY:%[0-9]+]]:_(s16) = COPY $di
    ; X64: [[ANYEXT:%[0-9]+]]:_(s32) = G_ANYEXT [[COPY]](s16)
    ; X64: $eax = COPY [[ANYEXT]](s32)
    ; X64: RET 0, implicit $eax
    %0(s16) = COPY $di
    %1(s32) = G_ANYEXT %0(s16)
    $eax = COPY %1(s32)
    RET 0, implicit $eax

...
