# NOTE: Assertions have been autogenerated by utils/update_mir_test_checks.py
# RUN: llc -mtriple=x86_64-linux-gnu -run-pass=instruction-select -verify-machineinstrs %s -o - | FileCheck %s --check-prefix=CHECK

--- |
  define i32 @test_icmp_eq_i8(i8 %a, i8 %b) {
    %r = icmp eq i8 %a, %b
    %res = zext i1 %r to i32
    ret i32 %res
  }

  define i32 @test_icmp_eq_i16(i16 %a, i16 %b) {
    %r = icmp eq i16 %a, %b
    %res = zext i1 %r to i32
    ret i32 %res
  }

  define i32 @test_icmp_eq_i64(i64 %a, i64 %b) {
    %r = icmp eq i64 %a, %b
    %res = zext i1 %r to i32
    ret i32 %res
  }

  define i32 @test_icmp_eq_i32(i32 %a, i32 %b) {
    %r = icmp eq i32 %a, %b
    %res = zext i1 %r to i32
    ret i32 %res
  }

  define i32 @test_icmp_ne_i32(i32 %a, i32 %b) {
    %r = icmp ne i32 %a, %b
    %res = zext i1 %r to i32
    ret i32 %res
  }

  define i32 @test_icmp_ugt_i32(i32 %a, i32 %b) {
    %r = icmp ugt i32 %a, %b
    %res = zext i1 %r to i32
    ret i32 %res
  }

  define i32 @test_icmp_uge_i32(i32 %a, i32 %b) {
    %r = icmp uge i32 %a, %b
    %res = zext i1 %r to i32
    ret i32 %res
  }

  define i32 @test_icmp_ult_i32(i32 %a, i32 %b) {
    %r = icmp ult i32 %a, %b
    %res = zext i1 %r to i32
    ret i32 %res
  }

  define i32 @test_icmp_ule_i32(i32 %a, i32 %b) {
    %r = icmp ule i32 %a, %b
    %res = zext i1 %r to i32
    ret i32 %res
  }

  define i32 @test_icmp_sgt_i32(i32 %a, i32 %b) {
    %r = icmp sgt i32 %a, %b
    %res = zext i1 %r to i32
    ret i32 %res
  }

  define i32 @test_icmp_sge_i32(i32 %a, i32 %b) {
    %r = icmp sge i32 %a, %b
    %res = zext i1 %r to i32
    ret i32 %res
  }

  define i32 @test_icmp_slt_i32(i32 %a, i32 %b) {
    %r = icmp slt i32 %a, %b
    %res = zext i1 %r to i32
    ret i32 %res
  }

  define i32 @test_icmp_sle_i32(i32 %a, i32 %b) {
    %r = icmp sle i32 %a, %b
    %res = zext i1 %r to i32
    ret i32 %res
  }

...
---
name:            test_icmp_eq_i8
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
  - { id: 3, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi, $esi

    ; CHECK-LABEL: name: test_icmp_eq_i8
    ; CHECK: [[COPY:%[0-9]+]]:gr8 = COPY $dil
    ; CHECK: [[COPY1:%[0-9]+]]:gr8 = COPY $sil
    ; CHECK: CMP8rr [[COPY]], [[COPY1]], implicit-def $eflags
    ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 4, implicit $eflags
    ; CHECK: [[SUBREG_TO_REG:%[0-9]+]]:gr32 = SUBREG_TO_REG 0, [[SETCCr]], %subreg.sub_8bit
    ; CHECK: [[AND32ri8_:%[0-9]+]]:gr32 = AND32ri8 [[SUBREG_TO_REG]], 1, implicit-def $eflags
    ; CHECK: $eax = COPY [[AND32ri8_]]
    ; CHECK: RET 0, implicit $eax
    %0(s8) = COPY $dil
    %1(s8) = COPY $sil
    %2(s1) = G_ICMP intpred(eq), %0(s8), %1
    %3(s32) = G_ZEXT %2(s1)
    $eax = COPY %3(s32)
    RET 0, implicit $eax

...
---
name:            test_icmp_eq_i16
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
  - { id: 3, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi, $esi

    ; CHECK-LABEL: name: test_icmp_eq_i16
    ; CHECK: [[COPY:%[0-9]+]]:gr16 = COPY $di
    ; CHECK: [[COPY1:%[0-9]+]]:gr16 = COPY $si
    ; CHECK: CMP16rr [[COPY]], [[COPY1]], implicit-def $eflags
    ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 4, implicit $eflags
    ; CHECK: [[SUBREG_TO_REG:%[0-9]+]]:gr32 = SUBREG_TO_REG 0, [[SETCCr]], %subreg.sub_8bit
    ; CHECK: [[AND32ri8_:%[0-9]+]]:gr32 = AND32ri8 [[SUBREG_TO_REG]], 1, implicit-def $eflags
    ; CHECK: $eax = COPY [[AND32ri8_]]
    ; CHECK: RET 0, implicit $eax
    %0(s16) = COPY $di
    %1(s16) = COPY $si
    %2(s1) = G_ICMP intpred(eq), %0(s16), %1
    %3(s32) = G_ZEXT %2(s1)
    $eax = COPY %3(s32)
    RET 0, implicit $eax

...
---
name:            test_icmp_eq_i64
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
  - { id: 3, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $rdi, $rsi

    ; CHECK-LABEL: name: test_icmp_eq_i64
    ; CHECK: [[COPY:%[0-9]+]]:gr64 = COPY $rdi
    ; CHECK: [[COPY1:%[0-9]+]]:gr64 = COPY $rsi
    ; CHECK: CMP64rr [[COPY]], [[COPY1]], implicit-def $eflags
    ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 4, implicit $eflags
    ; CHECK: [[SUBREG_TO_REG:%[0-9]+]]:gr32 = SUBREG_TO_REG 0, [[SETCCr]], %subreg.sub_8bit
    ; CHECK: [[AND32ri8_:%[0-9]+]]:gr32 = AND32ri8 [[SUBREG_TO_REG]], 1, implicit-def $eflags
    ; CHECK: $eax = COPY [[AND32ri8_]]
    ; CHECK: RET 0, implicit $eax
    %0(s64) = COPY $rdi
    %1(s64) = COPY $rsi
    %2(s1) = G_ICMP intpred(eq), %0(s64), %1
    %3(s32) = G_ZEXT %2(s1)
    $eax = COPY %3(s32)
    RET 0, implicit $eax

...
---
name:            test_icmp_eq_i32
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
  - { id: 3, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi, $esi

    ; CHECK-LABEL: name: test_icmp_eq_i32
    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $edi
    ; CHECK: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; CHECK: CMP32rr [[COPY]], [[COPY1]], implicit-def $eflags
    ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 4, implicit $eflags
    ; CHECK: [[SUBREG_TO_REG:%[0-9]+]]:gr32 = SUBREG_TO_REG 0, [[SETCCr]], %subreg.sub_8bit
    ; CHECK: [[AND32ri8_:%[0-9]+]]:gr32 = AND32ri8 [[SUBREG_TO_REG]], 1, implicit-def $eflags
    ; CHECK: $eax = COPY [[AND32ri8_]]
    ; CHECK: RET 0, implicit $eax
    %0(s32) = COPY $edi
    %1(s32) = COPY $esi
    %2(s1) = G_ICMP intpred(eq), %0(s32), %1
    %3(s32) = G_ZEXT %2(s1)
    $eax = COPY %3(s32)
    RET 0, implicit $eax

...
---
name:            test_icmp_ne_i32
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
  - { id: 3, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi, $esi

    ; CHECK-LABEL: name: test_icmp_ne_i32
    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $edi
    ; CHECK: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; CHECK: CMP32rr [[COPY]], [[COPY1]], implicit-def $eflags
    ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 5, implicit $eflags
    ; CHECK: [[SUBREG_TO_REG:%[0-9]+]]:gr32 = SUBREG_TO_REG 0, [[SETCCr]], %subreg.sub_8bit
    ; CHECK: [[AND32ri8_:%[0-9]+]]:gr32 = AND32ri8 [[SUBREG_TO_REG]], 1, implicit-def $eflags
    ; CHECK: $eax = COPY [[AND32ri8_]]
    ; CHECK: RET 0, implicit $eax
    %0(s32) = COPY $edi
    %1(s32) = COPY $esi
    %2(s1) = G_ICMP intpred(ne), %0(s32), %1
    %3(s32) = G_ZEXT %2(s1)
    $eax = COPY %3(s32)
    RET 0, implicit $eax

...
---
name:            test_icmp_ugt_i32
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
  - { id: 3, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi, $esi

    ; CHECK-LABEL: name: test_icmp_ugt_i32
    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $edi
    ; CHECK: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; CHECK: CMP32rr [[COPY]], [[COPY1]], implicit-def $eflags
    ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 7, implicit $eflags
    ; CHECK: [[SUBREG_TO_REG:%[0-9]+]]:gr32 = SUBREG_TO_REG 0, [[SETCCr]], %subreg.sub_8bit
    ; CHECK: [[AND32ri8_:%[0-9]+]]:gr32 = AND32ri8 [[SUBREG_TO_REG]], 1, implicit-def $eflags
    ; CHECK: $eax = COPY [[AND32ri8_]]
    ; CHECK: RET 0, implicit $eax
    %0(s32) = COPY $edi
    %1(s32) = COPY $esi
    %2(s1) = G_ICMP intpred(ugt), %0(s32), %1
    %3(s32) = G_ZEXT %2(s1)
    $eax = COPY %3(s32)
    RET 0, implicit $eax

...
---
name:            test_icmp_uge_i32
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
  - { id: 3, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi, $esi

    ; CHECK-LABEL: name: test_icmp_uge_i32
    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $edi
    ; CHECK: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; CHECK: CMP32rr [[COPY]], [[COPY1]], implicit-def $eflags
    ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 3, implicit $eflags
    ; CHECK: [[SUBREG_TO_REG:%[0-9]+]]:gr32 = SUBREG_TO_REG 0, [[SETCCr]], %subreg.sub_8bit
    ; CHECK: [[AND32ri8_:%[0-9]+]]:gr32 = AND32ri8 [[SUBREG_TO_REG]], 1, implicit-def $eflags
    ; CHECK: $eax = COPY [[AND32ri8_]]
    ; CHECK: RET 0, implicit $eax
    %0(s32) = COPY $edi
    %1(s32) = COPY $esi
    %2(s1) = G_ICMP intpred(uge), %0(s32), %1
    %3(s32) = G_ZEXT %2(s1)
    $eax = COPY %3(s32)
    RET 0, implicit $eax

...
---
name:            test_icmp_ult_i32
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
  - { id: 3, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi, $esi

    ; CHECK-LABEL: name: test_icmp_ult_i32
    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $edi
    ; CHECK: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; CHECK: CMP32rr [[COPY]], [[COPY1]], implicit-def $eflags
    ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 2, implicit $eflags
    ; CHECK: [[SUBREG_TO_REG:%[0-9]+]]:gr32 = SUBREG_TO_REG 0, [[SETCCr]], %subreg.sub_8bit
    ; CHECK: [[AND32ri8_:%[0-9]+]]:gr32 = AND32ri8 [[SUBREG_TO_REG]], 1, implicit-def $eflags
    ; CHECK: $eax = COPY [[AND32ri8_]]
    ; CHECK: RET 0, implicit $eax
    %0(s32) = COPY $edi
    %1(s32) = COPY $esi
    %2(s1) = G_ICMP intpred(ult), %0(s32), %1
    %3(s32) = G_ZEXT %2(s1)
    $eax = COPY %3(s32)
    RET 0, implicit $eax

...
---
name:            test_icmp_ule_i32
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
  - { id: 3, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi, $esi

    ; CHECK-LABEL: name: test_icmp_ule_i32
    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $edi
    ; CHECK: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; CHECK: CMP32rr [[COPY]], [[COPY1]], implicit-def $eflags
    ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 6, implicit $eflags
    ; CHECK: [[SUBREG_TO_REG:%[0-9]+]]:gr32 = SUBREG_TO_REG 0, [[SETCCr]], %subreg.sub_8bit
    ; CHECK: [[AND32ri8_:%[0-9]+]]:gr32 = AND32ri8 [[SUBREG_TO_REG]], 1, implicit-def $eflags
    ; CHECK: $eax = COPY [[AND32ri8_]]
    ; CHECK: RET 0, implicit $eax
    %0(s32) = COPY $edi
    %1(s32) = COPY $esi
    %2(s1) = G_ICMP intpred(ule), %0(s32), %1
    %3(s32) = G_ZEXT %2(s1)
    $eax = COPY %3(s32)
    RET 0, implicit $eax

...
---
name:            test_icmp_sgt_i32
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
  - { id: 3, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi, $esi

    ; CHECK-LABEL: name: test_icmp_sgt_i32
    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $edi
    ; CHECK: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; CHECK: CMP32rr [[COPY]], [[COPY1]], implicit-def $eflags
    ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 15, implicit $eflags
    ; CHECK: [[SUBREG_TO_REG:%[0-9]+]]:gr32 = SUBREG_TO_REG 0, [[SETCCr]], %subreg.sub_8bit
    ; CHECK: [[AND32ri8_:%[0-9]+]]:gr32 = AND32ri8 [[SUBREG_TO_REG]], 1, implicit-def $eflags
    ; CHECK: $eax = COPY [[AND32ri8_]]
    ; CHECK: RET 0, implicit $eax
    %0(s32) = COPY $edi
    %1(s32) = COPY $esi
    %2(s1) = G_ICMP intpred(sgt), %0(s32), %1
    %3(s32) = G_ZEXT %2(s1)
    $eax = COPY %3(s32)
    RET 0, implicit $eax

...
---
name:            test_icmp_sge_i32
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
  - { id: 3, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi, $esi

    ; CHECK-LABEL: name: test_icmp_sge_i32
    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $edi
    ; CHECK: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; CHECK: CMP32rr [[COPY]], [[COPY1]], implicit-def $eflags
    ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 13, implicit $eflags
    ; CHECK: [[SUBREG_TO_REG:%[0-9]+]]:gr32 = SUBREG_TO_REG 0, [[SETCCr]], %subreg.sub_8bit
    ; CHECK: [[AND32ri8_:%[0-9]+]]:gr32 = AND32ri8 [[SUBREG_TO_REG]], 1, implicit-def $eflags
    ; CHECK: $eax = COPY [[AND32ri8_]]
    ; CHECK: RET 0, implicit $eax
    %0(s32) = COPY $edi
    %1(s32) = COPY $esi
    %2(s1) = G_ICMP intpred(sge), %0(s32), %1
    %3(s32) = G_ZEXT %2(s1)
    $eax = COPY %3(s32)
    RET 0, implicit $eax

...
---
name:            test_icmp_slt_i32
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
  - { id: 3, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi, $esi

    ; CHECK-LABEL: name: test_icmp_slt_i32
    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $edi
    ; CHECK: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; CHECK: CMP32rr [[COPY]], [[COPY1]], implicit-def $eflags
    ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 12, implicit $eflags
    ; CHECK: [[SUBREG_TO_REG:%[0-9]+]]:gr32 = SUBREG_TO_REG 0, [[SETCCr]], %subreg.sub_8bit
    ; CHECK: [[AND32ri8_:%[0-9]+]]:gr32 = AND32ri8 [[SUBREG_TO_REG]], 1, implicit-def $eflags
    ; CHECK: $eax = COPY [[AND32ri8_]]
    ; CHECK: RET 0, implicit $eax
    %0(s32) = COPY $edi
    %1(s32) = COPY $esi
    %2(s1) = G_ICMP intpred(slt), %0(s32), %1
    %3(s32) = G_ZEXT %2(s1)
    $eax = COPY %3(s32)
    RET 0, implicit $eax

...
---
name:            test_icmp_sle_i32
alignment:       16
legalized:       true
regBankSelected: true
registers:
  - { id: 0, class: gpr }
  - { id: 1, class: gpr }
  - { id: 2, class: gpr }
  - { id: 3, class: gpr }
body:             |
  bb.1 (%ir-block.0):
    liveins: $edi, $esi

    ; CHECK-LABEL: name: test_icmp_sle_i32
    ; CHECK: [[COPY:%[0-9]+]]:gr32 = COPY $edi
    ; CHECK: [[COPY1:%[0-9]+]]:gr32 = COPY $esi
    ; CHECK: CMP32rr [[COPY]], [[COPY1]], implicit-def $eflags
    ; CHECK: [[SETCCr:%[0-9]+]]:gr8 = SETCCr 14, implicit $eflags
    ; CHECK: [[SUBREG_TO_REG:%[0-9]+]]:gr32 = SUBREG_TO_REG 0, [[SETCCr]], %subreg.sub_8bit
    ; CHECK: [[AND32ri8_:%[0-9]+]]:gr32 = AND32ri8 [[SUBREG_TO_REG]], 1, implicit-def $eflags
    ; CHECK: $eax = COPY [[AND32ri8_]]
    ; CHECK: RET 0, implicit $eax
    %0(s32) = COPY $edi
    %1(s32) = COPY $esi
    %2(s1) = G_ICMP intpred(sle), %0(s32), %1
    %3(s32) = G_ZEXT %2(s1)
    $eax = COPY %3(s32)
    RET 0, implicit $eax

...
