; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc -mcpu=atmega328p -O0 < %s -mtriple=avr | FileCheck --check-prefix=CHECK-MEGA %s
; RUN: llc -mattr=avrtiny -O0 < %s -mtriple=avr | FileCheck %s

define i16 @reg_copy16(i16, i16 %a) {
; CHECK-MEGA-LABEL: reg_copy16:
; CHECK-MEGA:       ; %bb.0:
; CHECK-MEGA-NEXT:    movw r24, r22
; CHECK-MEGA-NEXT:    ret
;
; CHECK-LABEL: reg_copy16:
; CHECK:       ; %bb.0:
; CHECK-NEXT:    mov r24, r22
; CHECK-NEXT:    mov r25, r23
; CHECK-NEXT:    ret
  ret i16 %a
}

define i8 @return_zero() {
; CHECK-MEGA-LABEL: return_zero:
; CHECK-MEGA:       ; %bb.0:
; CHECK-MEGA-NEXT:    mov r24, r1
; CHECK-MEGA-NEXT:    ret
;
; CHECK-LABEL: return_zero:
; CHECK:       ; %bb.0:
; CHECK-NEXT:    mov r24, r17
; CHECK-NEXT:    ret
  ret i8 0
}

define i8 @atomic_load8(ptr %foo) {
; CHECK-MEGA-LABEL: atomic_load8:
; CHECK-MEGA:       ; %bb.0:
; CHECK-MEGA-NEXT:    movw r26, r24
; CHECK-MEGA-NEXT:    in r0, 63
; CHECK-MEGA-NEXT:    cli
; CHECK-MEGA-NEXT:    ld r24, X
; CHECK-MEGA-NEXT:    out 63, r0
; CHECK-MEGA-NEXT:    ret
;
; CHECK-LABEL: atomic_load8:
; CHECK:       ; %bb.0:
; CHECK-NEXT:    mov r26, r24
; CHECK-NEXT:    mov r27, r25
; CHECK-NEXT:    in r16, 63
; CHECK-NEXT:    cli
; CHECK-NEXT:    ld r24, X
; CHECK-NEXT:    out 63, r16
; CHECK-NEXT:    ret
  %val = load atomic i8, ptr %foo unordered, align 1
  ret i8 %val
}

define avr_signalcc void @signal_handler_with_asm() {
; CHECK-MEGA-LABEL: signal_handler_with_asm:
; CHECK-MEGA:       ; %bb.0:
; CHECK-MEGA-NEXT:    push r0
; CHECK-MEGA-NEXT:    in r0, 63
; CHECK-MEGA-NEXT:    push r0
; CHECK-MEGA-NEXT:    push r1
; CHECK-MEGA-NEXT:    clr r1
; CHECK-MEGA-NEXT:    push r24
; CHECK-MEGA-NEXT:    ldi r24, 3
; CHECK-MEGA-NEXT:    ;APP
; CHECK-MEGA-NEXT:    mov r24, r24
; CHECK-MEGA-NEXT:    ;NO_APP
; CHECK-MEGA-NEXT:    pop r24
; CHECK-MEGA-NEXT:    pop r1
; CHECK-MEGA-NEXT:    pop r0
; CHECK-MEGA-NEXT:    out 63, r0
; CHECK-MEGA-NEXT:    pop r0
; CHECK-MEGA-NEXT:    reti
;
; CHECK-LABEL: signal_handler_with_asm:
; CHECK:       ; %bb.0:
; CHECK-NEXT:    push r16
; CHECK-NEXT:    in r16, 63
; CHECK-NEXT:    push r16
; CHECK-NEXT:    push r17
; CHECK-NEXT:    clr r17
; CHECK-NEXT:    push r24
; CHECK-NEXT:    ldi r24, 3
; CHECK-NEXT:    ;APP
; CHECK-NEXT:    mov r24, r24
; CHECK-NEXT:    ;NO_APP
; CHECK-NEXT:    pop r24
; CHECK-NEXT:    pop r17
; CHECK-NEXT:    pop r16
; CHECK-NEXT:    out 63, r16
; CHECK-NEXT:    pop r16
; CHECK-NEXT:    reti
  call i8 asm sideeffect "mov $0, $1", "=r,r"(i8 3) nounwind
  ret void
}

declare void @foo()

define avr_signalcc void @signal_handler_with_call() {
; CHECK-MEGA-LABEL: signal_handler_with_call:
; CHECK-MEGA:       ; %bb.0:
; CHECK-MEGA-NEXT:    push r0
; CHECK-MEGA-NEXT:    in r0, 63
; CHECK-MEGA-NEXT:    push r0
; CHECK-MEGA-NEXT:    push r1
; CHECK-MEGA-NEXT:    clr r1
; CHECK-MEGA-NEXT:    push r18
; CHECK-MEGA-NEXT:    push r19
; CHECK-MEGA-NEXT:    push r20
; CHECK-MEGA-NEXT:    push r21
; CHECK-MEGA-NEXT:    push r22
; CHECK-MEGA-NEXT:    push r23
; CHECK-MEGA-NEXT:    push r24
; CHECK-MEGA-NEXT:    push r25
; CHECK-MEGA-NEXT:    push r26
; CHECK-MEGA-NEXT:    push r27
; CHECK-MEGA-NEXT:    push r30
; CHECK-MEGA-NEXT:    push r31
; CHECK-MEGA-NEXT:    call foo
; CHECK-MEGA-NEXT:    pop r31
; CHECK-MEGA-NEXT:    pop r30
; CHECK-MEGA-NEXT:    pop r27
; CHECK-MEGA-NEXT:    pop r26
; CHECK-MEGA-NEXT:    pop r25
; CHECK-MEGA-NEXT:    pop r24
; CHECK-MEGA-NEXT:    pop r23
; CHECK-MEGA-NEXT:    pop r22
; CHECK-MEGA-NEXT:    pop r21
; CHECK-MEGA-NEXT:    pop r20
; CHECK-MEGA-NEXT:    pop r19
; CHECK-MEGA-NEXT:    pop r18
; CHECK-MEGA-NEXT:    pop r1
; CHECK-MEGA-NEXT:    pop r0
; CHECK-MEGA-NEXT:    out 63, r0
; CHECK-MEGA-NEXT:    pop r0
; CHECK-MEGA-NEXT:    reti
;
; CHECK-LABEL: signal_handler_with_call:
; CHECK:       ; %bb.0:
; CHECK-NEXT:    push r16
; CHECK-NEXT:    in r16, 63
; CHECK-NEXT:    push r16
; CHECK-NEXT:    push r17
; CHECK-NEXT:    clr r17
; CHECK-NEXT:    push r20
; CHECK-NEXT:    push r21
; CHECK-NEXT:    push r22
; CHECK-NEXT:    push r23
; CHECK-NEXT:    push r24
; CHECK-NEXT:    push r25
; CHECK-NEXT:    push r26
; CHECK-NEXT:    push r27
; CHECK-NEXT:    push r30
; CHECK-NEXT:    push r31
; CHECK-NEXT:    rcall foo
; CHECK-NEXT:    pop r31
; CHECK-NEXT:    pop r30
; CHECK-NEXT:    pop r27
; CHECK-NEXT:    pop r26
; CHECK-NEXT:    pop r25
; CHECK-NEXT:    pop r24
; CHECK-NEXT:    pop r23
; CHECK-NEXT:    pop r22
; CHECK-NEXT:    pop r21
; CHECK-NEXT:    pop r20
; CHECK-NEXT:    pop r17
; CHECK-NEXT:    pop r16
; CHECK-NEXT:    out 63, r16
; CHECK-NEXT:    pop r16
; CHECK-NEXT:    reti
  call void @foo()
  ret void
}
