forked from OSchip/llvm-project
52 lines
1.2 KiB
LLVM
52 lines
1.2 KiB
LLVM
|
; 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
|
||
|
}
|