|  | ; 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 | 
|  | } |