blob: 822829fb4e968b0cd1d7ce62e75aa2609a281853 [file] [edit]
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 6
; RUN: llc < %s -mtriple=avr | FileCheck %s
define i8 @sgt_i128_smax_hi(i128 %x) {
; CHECK-LABEL: sgt_i128_smax_hi:
; CHECK: ; %bb.0:
; CHECK-NEXT: push r4
; CHECK-NEXT: push r5
; CHECK-NEXT: push r6
; CHECK-NEXT: push r7
; CHECK-NEXT: push r8
; CHECK-NEXT: push r9
; CHECK-NEXT: push r10
; CHECK-NEXT: push r11
; CHECK-NEXT: push r16
; CHECK-NEXT: push r17
; CHECK-NEXT: push r28
; CHECK-NEXT: push r29
; CHECK-NEXT: in r28, 61
; CHECK-NEXT: in r29, 62
; CHECK-NEXT: sbiw r28, 1
; CHECK-NEXT: in r0, 63
; CHECK-NEXT: cli
; CHECK-NEXT: out 62, r29
; CHECK-NEXT: out 63, r0
; CHECK-NEXT: out 61, r28
; CHECK-NEXT: mov r30, r24
; CHECK-NEXT: mov r31, r25
; CHECK-NEXT: mov r8, r16
; CHECK-NEXT: mov r9, r17
; CHECK-NEXT: mov r4, r10
; CHECK-NEXT: mov r5, r11
; CHECK-NEXT: ldi r25, -1
; CHECK-NEXT: ldi r26, 255
; CHECK-NEXT: ldi r27, 255
; CHECK-NEXT: ldi r16, 255
; CHECK-NEXT: ldi r17, 127
; CHECK-NEXT: ldi r24, 1
; CHECK-NEXT: cpi r18, -1
; CHECK-NEXT: mov r10, r25
; CHECK-NEXT: cpc r19, r25
; CHECK-NEXT: cpc r20, r26
; CHECK-NEXT: cpc r21, r27
; CHECK-NEXT: cpc r22, r26
; CHECK-NEXT: cpc r23, r27
; CHECK-NEXT: mov r6, r16
; CHECK-NEXT: mov r7, r17
; CHECK-NEXT: cpc r30, r16
; CHECK-NEXT: cpc r31, r17
; CHECK-NEXT: ldi r25, 1
; CHECK-NEXT: std Y+1, r25 ; 1-byte Folded Spill
; CHECK-NEXT: breq .LBB0_2
; CHECK-NEXT: ; %bb.1:
; CHECK-NEXT: mov r11, r1
; CHECK-NEXT: std Y+1, r11 ; 1-byte Folded Spill
; CHECK-NEXT: .LBB0_2:
; CHECK-NEXT: cp r10, r18
; CHECK-NEXT: cpc r10, r19
; CHECK-NEXT: cpc r26, r20
; CHECK-NEXT: cpc r27, r21
; CHECK-NEXT: cpc r26, r22
; CHECK-NEXT: cpc r27, r23
; CHECK-NEXT: cpc r6, r30
; CHECK-NEXT: cpc r7, r31
; CHECK-NEXT: ldi r18, 1
; CHECK-NEXT: brlt .LBB0_4
; CHECK-NEXT: ; %bb.3:
; CHECK-NEXT: mov r18, r1
; CHECK-NEXT: .LBB0_4:
; CHECK-NEXT: ldi r20, 0
; CHECK-NEXT: ldi r21, 0
; CHECK-NEXT: mov r22, r4
; CHECK-NEXT: mov r23, r5
; CHECK-NEXT: cpi r22, 1
; CHECK-NEXT: cpc r23, r1
; CHECK-NEXT: cpc r12, r20
; CHECK-NEXT: cpc r13, r21
; CHECK-NEXT: cpc r14, r20
; CHECK-NEXT: cpc r15, r21
; CHECK-NEXT: cpc r8, r20
; CHECK-NEXT: cpc r9, r21
; CHECK-NEXT: brsh .LBB0_6
; CHECK-NEXT: ; %bb.5:
; CHECK-NEXT: mov r24, r1
; CHECK-NEXT: .LBB0_6:
; CHECK-NEXT: ldd r25, Y+1 ; 1-byte Folded Reload
; CHECK-NEXT: cpi r25, 0
; CHECK-NEXT: brne .LBB0_8
; CHECK-NEXT: ; %bb.7:
; CHECK-NEXT: mov r24, r18
; CHECK-NEXT: .LBB0_8:
; CHECK-NEXT: andi r24, 1
; CHECK-NEXT: adiw r28, 1
; CHECK-NEXT: in r0, 63
; CHECK-NEXT: cli
; CHECK-NEXT: out 62, r29
; CHECK-NEXT: out 63, r0
; CHECK-NEXT: out 61, r28
; CHECK-NEXT: pop r29
; CHECK-NEXT: pop r28
; CHECK-NEXT: pop r17
; CHECK-NEXT: pop r16
; CHECK-NEXT: pop r11
; CHECK-NEXT: pop r10
; CHECK-NEXT: pop r9
; CHECK-NEXT: pop r8
; CHECK-NEXT: pop r7
; CHECK-NEXT: pop r6
; CHECK-NEXT: pop r5
; CHECK-NEXT: pop r4
; CHECK-NEXT: ret
%c = icmp sgt i128 %x, u0x7FFFFFFFFFFFFFFF0000000000000000
%z = zext i1 %c to i8
ret i8 %z
}