brintos

brintos / llvm-project-archived public Read only

0
0
Text · 2.6 KiB · 1e01e05 Raw
88 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py2; RUN: llc -mtriple=avr < %s | FileCheck %s --check-prefix=CHECKA3; RUN: llc -mtriple=avr -mattr=+movw < %s | FileCheck %s --check-prefix=CHECKB4 5%struct.s10 = type { i16, i16, i16, i16, i16 }6%struct.s06 = type { i16, i16, i16 }7%struct.s04 = type { i16, i16 }8 9define void @foo10(ptr sret(%struct.s10) %0, i16 %1, i16 %2, i16 %3) addrspace(1) {10; CHECKA-LABEL: foo10:11; CHECKA:       ; %bb.0:12; CHECKA-NEXT:    mov r30, r2413; CHECKA-NEXT:    mov r31, r2514; CHECKA-NEXT:    std Z+5, r2315; CHECKA-NEXT:    std Z+4, r2216; CHECKA-NEXT:    std Z+3, r2117; CHECKA-NEXT:    std Z+2, r2018; CHECKA-NEXT:    std Z+1, r1919; CHECKA-NEXT:    st Z, r1820; CHECKA-NEXT:    ret21;22; CHECKB-LABEL: foo10:23; CHECKB:       ; %bb.0:24; CHECKB-NEXT:    movw r30, r2425; CHECKB-NEXT:    std Z+5, r2326; CHECKB-NEXT:    std Z+4, r2227; CHECKB-NEXT:    std Z+3, r2128; CHECKB-NEXT:    std Z+2, r2029; CHECKB-NEXT:    std Z+1, r1930; CHECKB-NEXT:    st Z, r1831; CHECKB-NEXT:    ret32  %5 = getelementptr inbounds %struct.s10, ptr %0, i16 0, i32 033  store i16 %3, ptr %534  %6 = getelementptr inbounds %struct.s10, ptr %0, i16 0, i32 135  store i16 %2, ptr %636  %7 = getelementptr inbounds %struct.s10, ptr %0, i16 0, i32 237  store i16 %1, ptr %738  ret void39}40 41define %struct.s06 @foo06(i16 %0, i16 %1, i16 %2) addrspace(1) {42; CHECKA-LABEL: foo06:43; CHECKA:       ; %bb.0:44; CHECKA-NEXT:    mov r30, r2045; CHECKA-NEXT:    mov r31, r2146; CHECKA-NEXT:    mov r20, r2247; CHECKA-NEXT:    mov r21, r2348; CHECKA-NEXT:    mov r18, r2449; CHECKA-NEXT:    mov r19, r2550; CHECKA-NEXT:    mov r22, r3051; CHECKA-NEXT:    mov r23, r3152; CHECKA-NEXT:    ret53;54; CHECKB-LABEL: foo06:55; CHECKB:       ; %bb.0:56; CHECKB-NEXT:    movw r30, r2057; CHECKB-NEXT:    movw r20, r2258; CHECKB-NEXT:    movw r18, r2459; CHECKB-NEXT:    movw r22, r3060; CHECKB-NEXT:    ret61  %4 = insertvalue %struct.s06 undef, i16 %0, 062  %5 = insertvalue %struct.s06 %4, i16 %1, 163  %6 = insertvalue %struct.s06 %5, i16 %2, 264  ret %struct.s06 %665}66 67define %struct.s04 @foo04(i16 %0, i16 %1) addrspace(1) {68; CHECKA-LABEL: foo04:69; CHECKA:       ; %bb.0:70; CHECKA-NEXT:    mov r18, r2271; CHECKA-NEXT:    mov r19, r2372; CHECKA-NEXT:    mov r22, r2473; CHECKA-NEXT:    mov r23, r2574; CHECKA-NEXT:    mov r24, r1875; CHECKA-NEXT:    mov r25, r1976; CHECKA-NEXT:    ret77;78; CHECKB-LABEL: foo04:79; CHECKB:       ; %bb.0:80; CHECKB-NEXT:    movw r18, r2281; CHECKB-NEXT:    movw r22, r2482; CHECKB-NEXT:    movw r24, r1883; CHECKB-NEXT:    ret84  %3 = insertvalue %struct.s04 undef, i16 %0, 085  %4 = insertvalue %struct.s04 %3, i16 %1, 186  ret %struct.s04 %487}88