; RUN: llc < %s -march=avr | FileCheck %s ; Unit test for: PR 31345 define i16 @and16_reg_imm_0xff00(i16 %a) { ; CHECK-LABEL: and16_reg_imm_0xff00 ; CHECK: andi {{r[0-9]+}}, 0 ; CHECK-NOT: andi {{r[0-9]+}}, 255 %result = and i16 %a, 65280 ret i16 %result } define i16 @and16_reg_imm_0xffb3(i16 %a) { ; CHECK-LABEL: and16_reg_imm_0xffb3 ; CHECK: andi {{r[0-9]+}}, 179 ; CHECK-NOT: andi {{r[0-9]+}}, 255 %result = and i16 %a, 65459 ret i16 %result } define i16 @and16_reg_imm_0x00ff(i16 %a) { ; CHECK-LABEL: and16_reg_imm_0x00ff ; CHECK-NOT: andi {{r[0-9]+}}, 255 ; CHECK: andi {{r[0-9]+}}, 0 %result = and i16 %a, 255 ret i16 %result } define i16 @and16_reg_imm_0xb3ff(i16 %a) { ; CHECK-LABEL: and16_reg_imm_0xb3ff ; CHECK-NOT: andi {{r[0-9]+}}, 255 ; CHECK: andi {{r[0-9]+}}, 179 %result = and i16 %a, 46079 ret i16 %result } define i16 @and16_reg_imm_0xffff(i16 %a) { ; CHECK-LABEL: and16_reg_imm_0xffff ; CHECK-NOT: andi {{r[0-9]+}}, 255 ; CHECK-NOT: andi {{r[0-9]+}}, 255 %result = and i16 %a, 65535 ret i16 %result } define i16 @and16_reg_imm_0xabcd(i16 %a) { ; CHECK-LABEL: and16_reg_imm_0xabcd ; CHECK: andi {{r[0-9]+}}, 205 ; CHECK: andi {{r[0-9]+}}, 171 %result = and i16 %a, 43981 ret i16 %result }