1; RUN: llc < %s -march=avr | FileCheck %s 2 3; Unit test for: PR 31345 4 5define i16 @and16_reg_imm_0xff00(i16 %a) { 6; CHECK-LABEL: and16_reg_imm_0xff00 7; CHECK: andi {{r[0-9]+}}, 0 8; CHECK-NOT: andi {{r[0-9]+}}, 255 9 %result = and i16 %a, 65280 10 ret i16 %result 11} 12 13define i16 @and16_reg_imm_0xffb3(i16 %a) { 14; CHECK-LABEL: and16_reg_imm_0xffb3 15; CHECK: andi {{r[0-9]+}}, 179 16; CHECK-NOT: andi {{r[0-9]+}}, 255 17 %result = and i16 %a, 65459 18 ret i16 %result 19} 20 21define i16 @and16_reg_imm_0x00ff(i16 %a) { 22; CHECK-LABEL: and16_reg_imm_0x00ff 23; CHECK-NOT: andi {{r[0-9]+}}, 255 24; CHECK: andi {{r[0-9]+}}, 0 25 %result = and i16 %a, 255 26 ret i16 %result 27} 28 29define i16 @and16_reg_imm_0xb3ff(i16 %a) { 30; CHECK-LABEL: and16_reg_imm_0xb3ff 31; CHECK-NOT: andi {{r[0-9]+}}, 255 32; CHECK: andi {{r[0-9]+}}, 179 33 %result = and i16 %a, 46079 34 ret i16 %result 35} 36 37define i16 @and16_reg_imm_0xffff(i16 %a) { 38; CHECK-LABEL: and16_reg_imm_0xffff 39; CHECK-NOT: andi {{r[0-9]+}}, 255 40; CHECK-NOT: andi {{r[0-9]+}}, 255 41 %result = and i16 %a, 65535 42 ret i16 %result 43} 44 45define i16 @and16_reg_imm_0xabcd(i16 %a) { 46; CHECK-LABEL: and16_reg_imm_0xabcd 47; CHECK: andi {{r[0-9]+}}, 205 48; CHECK: andi {{r[0-9]+}}, 171 49 %result = and i16 %a, 43981 50 ret i16 %result 51} 52