xref: /llvm-project/llvm/test/CodeGen/AVR/pseudo/LSLWNRd.mir (revision 49b0b5f0fa868bad2622d03e63c79708bf6963fa)
1*49b0b5f0SBen Shi# RUN: llc -O0 -run-pass=avr-expand-pseudo %s -o - | FileCheck %s
2*49b0b5f0SBen Shi
3*49b0b5f0SBen Shi--- |
4*49b0b5f0SBen Shi  target triple = "avr--"
5*49b0b5f0SBen Shi  define void @test() {
6*49b0b5f0SBen Shi  entry:
7*49b0b5f0SBen Shi    ret void
8*49b0b5f0SBen Shi  }
9*49b0b5f0SBen Shi...
10*49b0b5f0SBen Shi
11*49b0b5f0SBen Shi---
12*49b0b5f0SBen Shiname:            test
13*49b0b5f0SBen Shibody: |
14*49b0b5f0SBen Shi  bb.0.entry:
15*49b0b5f0SBen Shi    liveins: $r17r16, $r19r18, $r21r20
16*49b0b5f0SBen Shi
17*49b0b5f0SBen Shi    ; CHECK-LABEL: test
18*49b0b5f0SBen Shi
19*49b0b5f0SBen Shi    ; CHECK:      $r17 = SWAPRd killed $r17
20*49b0b5f0SBen Shi    ; CHECK-NEXT: $r16 = SWAPRd killed $r16
21*49b0b5f0SBen Shi    ; CHECK-NEXT: $r17 = ANDIRdK killed $r17, 240, implicit-def dead $sreg
22*49b0b5f0SBen Shi    ; CHECK-NEXT: $r17 = EORRdRr killed $r17, $r16, implicit-def dead $sreg
23*49b0b5f0SBen Shi    ; CHECK-NEXT: $r16 = ANDIRdK $r16, 240, implicit-def dead $sreg
24*49b0b5f0SBen Shi    ; CHECK-NEXT: $r17 = EORRdRr $r17, $r16, implicit-def $sreg
25*49b0b5f0SBen Shi    $r17r16 = LSLWNRd $r17r16,  4, implicit-def $sreg
26*49b0b5f0SBen Shi
27*49b0b5f0SBen Shi    ; CHECK-NEXT: $r19 = MOVRdRr $r18
28*49b0b5f0SBen Shi    ; CHECK-NEXT: $r18 = EORRdRr $r18, $r18, implicit-def $sreg
29*49b0b5f0SBen Shi    $r19r18 = LSLWNRd $r19r18,  8, implicit-def $sreg
30*49b0b5f0SBen Shi
31*49b0b5f0SBen Shi    ; CHECK-NEXT: $r21 = MOVRdRr $r20
32*49b0b5f0SBen Shi    ; CHECK-NEXT: $r21 = SWAPRd killed $r21
33*49b0b5f0SBen Shi    ; CHECK-NEXT: $r21 = ANDIRdK $r21, 240, implicit-def dead $sreg
34*49b0b5f0SBen Shi    ; CHECK-NEXT: $r20 = EORRdRr $r20, $r20, implicit-def $sreg
35*49b0b5f0SBen Shi    $r21r20 = LSLWNRd $r21r20, 12, implicit-def $sreg
36*49b0b5f0SBen Shi...
37