xref: /llvm-project/llvm/test/CodeGen/AVR/pseudo/ASRWNRd.mir (revision bce2e208e08f62dd362566e43b16cbfece459bec)
1*bce2e208SBen Shi# RUN: llc -O0 -run-pass=avr-expand-pseudo %s -o - | FileCheck %s
2*bce2e208SBen Shi
3*bce2e208SBen Shi--- |
4*bce2e208SBen Shi  target triple = "avr--"
5*bce2e208SBen Shi  define void @test() {
6*bce2e208SBen Shi  entry:
7*bce2e208SBen Shi    ret void
8*bce2e208SBen Shi  }
9*bce2e208SBen Shi...
10*bce2e208SBen Shi
11*bce2e208SBen Shi---
12*bce2e208SBen Shiname:            test
13*bce2e208SBen Shibody: |
14*bce2e208SBen Shi  bb.0.entry:
15*bce2e208SBen Shi    liveins: $r15r14, $r13r12, $r11r10, $r17r16
16*bce2e208SBen Shi
17*bce2e208SBen Shi    ; CHECK-LABEL: test
18*bce2e208SBen Shi
19*bce2e208SBen Shi    ; CHECK:      $r14 = ADDRdRr killed $r14, killed $r14, implicit-def $sreg
20*bce2e208SBen Shi    ; CHECK-NEXT: $r14 = MOVRdRr $r15
21*bce2e208SBen Shi    ; CHECK-NEXT: $r14 = ADCRdRr $r14, $r14, implicit-def $sreg, implicit $sreg
22*bce2e208SBen Shi    ; CHECK-NEXT: $r15 = SBCRdRr $r15, $r15, implicit-def $sreg, implicit killed $sreg
23*bce2e208SBen Shi    $r15r14 = ASRWNRd $r15r14,  7, implicit-def $sreg
24*bce2e208SBen Shi
25*bce2e208SBen Shi    ; CHECK-NEXT: $r12 = MOVRdRr $r13
26*bce2e208SBen Shi    ; CHECK-NEXT: $r13 = ADDRdRr killed $r13, killed $r13, implicit-def $sreg
27*bce2e208SBen Shi    ; CHECK-NEXT: $r13 = SBCRdRr $r13, $r13, implicit-def $sreg, implicit killed $sreg
28*bce2e208SBen Shi    $r13r12 = ASRWNRd $r13r12,  8, implicit-def $sreg
29*bce2e208SBen Shi
30*bce2e208SBen Shi    ; CHECK-NEXT: $r11 = ADDRdRr killed $r11, killed $r11, implicit-def $sreg
31*bce2e208SBen Shi    ; CHECK-NEXT: $r10 = SBCRdRr killed $r10, killed $r10, implicit-def $sreg, implicit $sreg
32*bce2e208SBen Shi    ; CHECK-NEXT: $r11 = ADDRdRr killed $r11, killed $r11, implicit-def $sreg
33*bce2e208SBen Shi    ; CHECK-NEXT: $r11 = MOVRdRr $r10
34*bce2e208SBen Shi    ; CHECK-NEXT: $r10 = ADCRdRr $r10, $r10, implicit-def $sreg, implicit killed $sreg
35*bce2e208SBen Shi    $r11r10 = ASRWNRd $r11r10, 14, implicit-def $sreg
36*bce2e208SBen Shi
37*bce2e208SBen Shi    ; CHECK-NEXT: $r17 = ADDRdRr killed $r17, killed $r17, implicit-def $sreg
38*bce2e208SBen Shi    ; CHECK-NEXT: $r17 = SBCRdRr killed $r17, killed $r17, implicit-def $sreg, implicit killed $sreg
39*bce2e208SBen Shi    ; CHECK-NEXT: $r16 = MOVRdRr $r17
40*bce2e208SBen Shi    $r17r16 = ASRWNRd $r17r16, 15, implicit-def $sreg
41*bce2e208SBen Shi...
42