Re-land [openmp] Fix warnings when building on Windows with latest MSVC or Clang...
[llvm-project.git] / llvm / test / CodeGen / AVR / pseudo / LPMBRdZ.mir
blob6eaa9435220ea596253ab561d67a958cd67c7c8a
1 # RUN: llc -mtriple=avr -mattr=+lpm -mattr=+lpmx -start-before=greedy %s -o - \
2 # RUN:     | FileCheck %s
3 # RUN: llc -mtriple=avr -mattr=+lpm -mattr=-lpmx -start-before=greedy %s -o - \
4 # RUN:     | FileCheck --check-prefix=NOX %s
6 # This test checks the expansion of the 8-bit LPMBRdZ pseudo instruction and that
7 # the register allocator won't use R31R30 as an output register (which would
8 # lead to undefined behavior).
10 --- |
11   target triple = "avr--"
12   define void @test_lpmbrdz() {
13   entry:
14     ret void
15   }
16 ...
18 ---
19 name:            test_lpmbrdz
20 tracksRegLiveness: true
21 body: |
22   bb.0.entry:
23     liveins: $r31r30
25     ; CHECK-LABEL: test_lpmbrdz:
26     ; CHECK:       ; %bb.0:
27     ; CHECK-NEXT:    lpm r30, Z
28     ; CHECK-NEXT:    ret
30     ; NOX-LABEL:   test_lpmbrdz
31     ; NOX:         ; %bb.0:
32     ; NOX-NEXT:      lpm
33     ; NOX-NEXT:      mov r30, r0
34     ; NOX-NEXT:      ret
36     %1:zreg = COPY killed $r31r30
37     %2:gpr8 = LPMBRdZ %1, implicit-def dead $r0
38     $r30 = COPY %2
39     RET implicit $r30
40 ...