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

--- |
  define i1 @test_xor_i1() {
    %ret = xor i1 undef, undef
    ret i1 %ret
  }

  define i8 @test_xor_i8() {
    %ret = xor i8 undef, undef
    ret i8 %ret
  }

  define i16 @test_xor_i16() {
    %ret = xor i16 undef, undef
    ret i16 %ret
  }

  define i32 @test_xor_i32() {
    %ret = xor i32 undef, undef
    ret i32 %ret
  }

  define i64 @test_xor_i64() {
    %ret = xor i64 undef, undef
    ret i64 %ret
  }

...
---
name:            test_xor_i1
alignment:       4
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):

    ; CHECK-LABEL: name: test_xor_i1
    ; CHECK: [[COPY:%[0-9]+]]:_(s32) = COPY $edx
    ; CHECK: [[TRUNC:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32)
    ; CHECK: [[TRUNC1:%[0-9]+]]:_(s8) = G_TRUNC [[COPY]](s32)
    ; CHECK: [[XOR:%[0-9]+]]:_(s8) = G_XOR [[TRUNC]], [[TRUNC1]]
    ; CHECK: RET 0
    %0(s32) = COPY $edx
    %1(s1) = G_TRUNC %0(s32)
    %2(s1) = G_XOR %1, %1
    %3:_(p0) = G_IMPLICIT_DEF
    G_STORE %2, %3 ::(store 1)
    RET 0
...
---
name:            test_xor_i8
alignment:       4
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
liveins:
fixedStack:
stack:
constants:
body:             |
  bb.1 (%ir-block.0):
    ; CHECK-LABEL: name: test_xor_i8
    ; CHECK: [[DEF:%[0-9]+]]:_(s8) = IMPLICIT_DEF
    ; CHECK: [[XOR:%[0-9]+]]:_(s8) = G_XOR [[DEF]], [[DEF]]
    ; CHECK: $al = COPY [[XOR]](s8)
    ; CHECK: RET 0, implicit $al
    %0(s8) = IMPLICIT_DEF
    %1(s8) = G_XOR %0, %0
    $al = COPY %1(s8)
    RET 0, implicit $al

...
---
name:            test_xor_i16
alignment:       4
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
liveins:
fixedStack:
stack:
constants:
body:             |
  bb.1 (%ir-block.0):
    ; CHECK-LABEL: name: test_xor_i16
    ; CHECK: [[DEF:%[0-9]+]]:_(s16) = IMPLICIT_DEF
    ; CHECK: [[XOR:%[0-9]+]]:_(s16) = G_XOR [[DEF]], [[DEF]]
    ; CHECK: $ax = COPY [[XOR]](s16)
    ; CHECK: RET 0, implicit $ax
    %0(s16) = IMPLICIT_DEF
    %1(s16) = G_XOR %0, %0
    $ax = COPY %1(s16)
    RET 0, implicit $ax

...
---
name:            test_xor_i32
alignment:       4
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
liveins:
fixedStack:
stack:
constants:
body:             |
  bb.1 (%ir-block.0):
    ; CHECK-LABEL: name: test_xor_i32
    ; CHECK: [[DEF:%[0-9]+]]:_(s32) = IMPLICIT_DEF
    ; CHECK: [[XOR:%[0-9]+]]:_(s32) = G_XOR [[DEF]], [[DEF]]
    ; CHECK: $eax = COPY [[XOR]](s32)
    ; CHECK: RET 0, implicit $eax
    %0(s32) = IMPLICIT_DEF
    %1(s32) = G_XOR %0, %0
    $eax = COPY %1(s32)
    RET 0, implicit $eax

...
---
name:            test_xor_i64
alignment:       4
legalized:       false
regBankSelected: false
registers:
  - { id: 0, class: _, preferred-register: '' }
  - { id: 1, class: _, preferred-register: '' }
liveins:
fixedStack:
stack:
constants:
body:             |
  bb.1 (%ir-block.0):
    ; CHECK-LABEL: name: test_xor_i64
    ; CHECK: [[DEF:%[0-9]+]]:_(s64) = IMPLICIT_DEF
    ; CHECK: [[XOR:%[0-9]+]]:_(s64) = G_XOR [[DEF]], [[DEF]]
    ; CHECK: $rax = COPY [[XOR]](s64)
    ; CHECK: RET 0, implicit $rax
    %0(s64) = IMPLICIT_DEF
    %1(s64) = G_XOR %0, %0
    $rax = COPY %1(s64)
    RET 0, implicit $rax

...
