Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / CodeGen / AVR / zeroreg.ll
blob7d0ea5b8f38c7f1da9c2a248fd2a02d372b7a3a8
1 ; RUN: llc -mattr=avr6,sram < %s -march=avr | FileCheck %s
3 ; This file tests whether the compiler correctly works with the r1 register,
4 ; clearing it when needed.
6 ; Test regular use of r1 as a zero register.
7 ; CHECK-LABEL: store8zero:
8 ; CHECK:      st {{[XYZ]}}, r1
9 ; CHECK-NEXT: mov r24, r1
10 ; CHECK-NEXT: ret
11 define i8 @store8zero(i8* %x) {
12   store i8 0, i8* %x
13   ret i8 0
16 ; Test that mulitplication instructions (mul, muls, etc) clobber r1 and require
17 ; a "clr r1" instruction.
18 ; CHECK-LABEL: mul:
19 ; CHECK:      muls
20 ; CHECK-NEXT: clr r1
21 ; CHECK-NEXT: st {{[XYZ]}}, r0
22 ; CHECK-NEXT: ret
23 define void @mul(i8* %ptr, i8 %n) {
24   %result = mul i8 %n, 3
25   store i8 %result, i8* %ptr
26   ret void