93 lines · plain
1; RUN: llc < %s -mtriple=avr | FileCheck %s2 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, r228 %result = xor i8 %a, %b9 ret i8 %result10}11 12define i8 @eor8_reg_imm(i8 %a) {13; CHECK-LABEL: eor8_reg_imm:14; CHECK: ldi r25, 515; CHECK: eor r24, r2516 %result = xor i8 %a, 517 ret i8 %result18}19 20define i16 @eor16_reg_reg(i16 %a, i16 %b) {21; CHECK-LABEL: eor16_reg_reg:22; CHECK: eor r24, r2223; CHECK: eor r25, r2324 %result = xor i16 %a, %b25 ret i16 %result26}27 28define i16 @eor16_reg_imm(i16 %a) {29; CHECK-LABEL: eor16_reg_imm:30; CHECK: ldi r18, 21031; CHECK: ldi r19, 432; CHECK: eor r24, r1833; CHECK: eor r25, r1934 %result = xor i16 %a, 123435 ret i16 %result36}37 38define i32 @eor32_reg_reg(i32 %a, i32 %b) {39; CHECK-LABEL: eor32_reg_reg:40; CHECK: eor r22, r1841; CHECK: eor r23, r1942; CHECK: eor r24, r2043; CHECK: eor r25, r2144 %result = xor i32 %a, %b45 ret i32 %result46}47 48define i32 @eor32_reg_imm(i32 %a) {49; CHECK-LABEL: eor32_reg_imm:50; CHECK: ldi r18, 21051; CHECK: ldi r19, 452; CHECK: eor r22, r1853; CHECK: eor r23, r1954 %result = xor i32 %a, 123455 ret i32 %result56}57 58define i64 @eor64_reg_reg(i64 %a, i64 %b) {59; CHECK-LABEL: eor64_reg_reg:60; CHECK: eor r18, r1061; CHECK: eor r19, r1162; CHECK: eor r20, r1263; CHECK: eor r21, r1364; CHECK: eor r22, r1465; CHECK: eor r23, r1566; CHECK: eor r24, r1667; CHECK: eor r25, r1768 %result = xor i64 %a, %b69 ret i64 %result70}71 72define i64 @eor64_reg_imm(i64 %a) {73; CHECK-LABEL: eor64_reg_imm:74; CHECK: ldi r30, 25375; CHECK: ldi r31, 25576; CHECK: eor r18, r3077; CHECK: eor r19, r3178; CHECK: ldi r30, 15579; CHECK: ldi r31, 8880; CHECK: eor r20, r3081; CHECK: eor r21, r3182; CHECK: ldi r30, 7683; CHECK: ldi r31, 7384; CHECK: eor r22, r3085; CHECK: eor r23, r3186; CHECK: ldi r30, 3187; CHECK: ldi r31, 24288; CHECK: eor r24, r3089; CHECK: eor r25, r3190 %result = xor i64 %a, 1744674407370955161391 ret i64 %result92}93