1; RUN: llc < %s -march=avr | FileCheck %s 2 3; Tests for the exclusive OR operation. 4 5define i8 @eor8_reg_reg(i8 %a, i8 %b) { 6; CHECK-LABEL: eor8_reg_reg: 7; CHECK: eor r24, r22 8 %result = xor i8 %a, %b 9 ret i8 %result 10} 11 12define i8 @eor8_reg_imm(i8 %a) { 13; CHECK-LABEL: eor8_reg_imm: 14; CHECK: ldi r25, 5 15; CHECK: eor r24, r25 16 %result = xor i8 %a, 5 17 ret i8 %result 18} 19 20define i16 @eor16_reg_reg(i16 %a, i16 %b) { 21; CHECK-LABEL: eor16_reg_reg: 22; CHECK: eor r24, r22 23; CHECK: eor r25, r23 24 %result = xor i16 %a, %b 25 ret i16 %result 26} 27 28define i16 @eor16_reg_imm(i16 %a) { 29; CHECK-LABEL: eor16_reg_imm: 30; CHECK: ldi r18, 210 31; CHECK: ldi r19, 4 32; CHECK: eor r24, r18 33; CHECK: eor r25, r19 34 %result = xor i16 %a, 1234 35 ret i16 %result 36} 37 38define i32 @eor32_reg_reg(i32 %a, i32 %b) { 39; CHECK-LABEL: eor32_reg_reg: 40; CHECK: eor r22, r18 41; CHECK: eor r23, r19 42; CHECK: eor r24, r20 43; CHECK: eor r25, r21 44 %result = xor i32 %a, %b 45 ret i32 %result 46} 47 48define i32 @eor32_reg_imm(i32 %a) { 49; CHECK-LABEL: eor32_reg_imm: 50; CHECK: ldi r18, 210 51; CHECK: ldi r19, 4 52; CHECK: eor r22, r18 53; CHECK: eor r23, r19 54 %result = xor i32 %a, 1234 55 ret i32 %result 56} 57 58define i64 @eor64_reg_reg(i64 %a, i64 %b) { 59; CHECK-LABEL: eor64_reg_reg: 60; CHECK: eor r18, r10 61; CHECK: eor r19, r11 62; CHECK: eor r20, r12 63; CHECK: eor r21, r13 64; CHECK: eor r22, r14 65; CHECK: eor r23, r15 66; CHECK: eor r24, r16 67; CHECK: eor r25, r17 68 %result = xor i64 %a, %b 69 ret i64 %result 70} 71 72define i64 @eor64_reg_imm(i64 %a) { 73; CHECK-LABEL: eor64_reg_imm: 74; CHECK: ldi r30, 253 75; CHECK: ldi r31, 255 76; CHECK: eor r18, r30 77; CHECK: eor r19, r31 78; CHECK: ldi r30, 155 79; CHECK: ldi r31, 88 80; CHECK: eor r20, r30 81; CHECK: eor r21, r31 82; CHECK: ldi r30, 76 83; CHECK: ldi r31, 73 84; CHECK: eor r22, r30 85; CHECK: eor r23, r31 86; CHECK: ldi r30, 31 87; CHECK: ldi r31, 242 88; CHECK: eor r24, r30 89; CHECK: eor r25, r31 90 %result = xor i64 %a, 17446744073709551613 91 ret i64 %result 92} 93