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