brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.8 KiB · 7d4cf7e Raw
199 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=msp430-unknown-unknown < %s | FileCheck %s3; RUN: llc -mtriple=msp430-unknown-linux < %s | FileCheck %s4; RUN: llc -mtriple=msp430-unknown-linux-gnu < %s | FileCheck %s5 6define half @exp10_f16(half %x) #0 {7; CHECK-LABEL: exp10_f16:8; CHECK:       ; %bb.0:9; CHECK-NEXT:    call #__extendhfsf210; CHECK-NEXT:    call #exp10f11; CHECK-NEXT:    call #__truncsfhf212; CHECK-NEXT:    ret13  %r = call half @llvm.exp10.f16(half %x)14  ret half %r15}16 17define <2 x half> @exp10_v2f16(<2 x half> %x) #0 {18; CHECK-LABEL: exp10_v2f16:19; CHECK:       ; %bb.0:20; CHECK-NEXT:    push r921; CHECK-NEXT:    push r1022; CHECK-NEXT:    mov r13, r1023; CHECK-NEXT:    call #__extendhfsf224; CHECK-NEXT:    call #exp10f25; CHECK-NEXT:    call #__truncsfhf226; CHECK-NEXT:    mov r12, r927; CHECK-NEXT:    mov r10, r1228; CHECK-NEXT:    call #__extendhfsf229; CHECK-NEXT:    call #exp10f30; CHECK-NEXT:    call #__truncsfhf231; CHECK-NEXT:    mov r12, r1332; CHECK-NEXT:    mov r9, r1233; CHECK-NEXT:    pop r1034; CHECK-NEXT:    pop r935; CHECK-NEXT:    ret36  %r = call <2 x half> @llvm.exp10.v2f16(<2 x half> %x)37  ret <2 x half> %r38}39 40define float @exp10_f32(float %x) #0 {41; CHECK-LABEL: exp10_f32:42; CHECK:       ; %bb.0:43; CHECK-NEXT:    call #exp10f44; CHECK-NEXT:    ret45  %r = call float @llvm.exp10.f32(float %x)46  ret float %r47}48 49define <2 x float> @exp10_v2f32(<2 x float> %x) #0 {50; CHECK-LABEL: exp10_v2f32:51; CHECK:       ; %bb.0:52; CHECK-NEXT:    push r753; CHECK-NEXT:    push r854; CHECK-NEXT:    push r955; CHECK-NEXT:    push r1056; CHECK-NEXT:    mov r15, r1057; CHECK-NEXT:    mov r14, r958; CHECK-NEXT:    call #exp10f59; CHECK-NEXT:    mov r12, r860; CHECK-NEXT:    mov r13, r761; CHECK-NEXT:    mov r9, r1262; CHECK-NEXT:    mov r10, r1363; CHECK-NEXT:    call #exp10f64; CHECK-NEXT:    mov r12, r1465; CHECK-NEXT:    mov r13, r1566; CHECK-NEXT:    mov r8, r1267; CHECK-NEXT:    mov r7, r1368; CHECK-NEXT:    pop r1069; CHECK-NEXT:    pop r970; CHECK-NEXT:    pop r871; CHECK-NEXT:    pop r772; CHECK-NEXT:    ret73  %r = call <2 x float> @llvm.exp10.v2f32(<2 x float> %x)74  ret <2 x float> %r75}76 77define double @exp10_f64(double %x) #0 {78; CHECK-LABEL: exp10_f64:79; CHECK:       ; %bb.0:80; CHECK-NEXT:    call #exp1081; CHECK-NEXT:    ret82  %r = call double @llvm.exp10.f64(double %x)83  ret double %r84}85 86define <2 x double> @exp10_v2f64(<2 x double> %x) #0 {87; CHECK-LABEL: exp10_v2f64:88; CHECK:       ; %bb.0:89; CHECK-NEXT:    push r1090; CHECK-NEXT:    mov r12, r1091; CHECK-NEXT:    mov 12(r1), r1292; CHECK-NEXT:    mov 14(r1), r1393; CHECK-NEXT:    mov 16(r1), r1494; CHECK-NEXT:    mov 18(r1), r1595; CHECK-NEXT:    call #exp1096; CHECK-NEXT:    mov r15, 14(r10)97; CHECK-NEXT:    mov r14, 12(r10)98; CHECK-NEXT:    mov r13, 10(r10)99; CHECK-NEXT:    mov r12, 8(r10)100; CHECK-NEXT:    mov 4(r1), r12101; CHECK-NEXT:    mov 6(r1), r13102; CHECK-NEXT:    mov 8(r1), r14103; CHECK-NEXT:    mov 10(r1), r15104; CHECK-NEXT:    call #exp10105; CHECK-NEXT:    mov r15, 6(r10)106; CHECK-NEXT:    mov r14, 4(r10)107; CHECK-NEXT:    mov r13, 2(r10)108; CHECK-NEXT:    mov r12, 0(r10)109; CHECK-NEXT:    pop r10110; CHECK-NEXT:    ret111  %r = call <2 x double> @llvm.exp10.v2f64(<2 x double> %x)112  ret <2 x double> %r113}114 115define fp128 @exp10_f128(fp128 %x) #0 {116; CHECK-LABEL: exp10_f128:117; CHECK:       ; %bb.0:118; CHECK-NEXT:    push r10119; CHECK-NEXT:    sub #32, r1120; CHECK-NEXT:    mov r12, r10121; CHECK-NEXT:    mov 50(r1), 14(r1)122; CHECK-NEXT:    mov 48(r1), 12(r1)123; CHECK-NEXT:    mov 46(r1), 10(r1)124; CHECK-NEXT:    mov 44(r1), 8(r1)125; CHECK-NEXT:    mov 42(r1), 6(r1)126; CHECK-NEXT:    mov 40(r1), 4(r1)127; CHECK-NEXT:    mov 38(r1), 2(r1)128; CHECK-NEXT:    mov 36(r1), 0(r1)129; CHECK-NEXT:    mov r1, r12130; CHECK-NEXT:    add #16, r12131; CHECK-NEXT:    call #exp10l132; CHECK-NEXT:    mov 30(r1), 14(r10)133; CHECK-NEXT:    mov 28(r1), 12(r10)134; CHECK-NEXT:    mov 26(r1), 10(r10)135; CHECK-NEXT:    mov 24(r1), 8(r10)136; CHECK-NEXT:    mov 22(r1), 6(r10)137; CHECK-NEXT:    mov 20(r1), 4(r10)138; CHECK-NEXT:    mov 18(r1), 2(r10)139; CHECK-NEXT:    mov 16(r1), 0(r10)140; CHECK-NEXT:    add #32, r1141; CHECK-NEXT:    pop r10142; CHECK-NEXT:    ret143  %r = call fp128 @llvm.exp10.f128(fp128 %x)144  ret fp128 %r145}146 147define <2 x fp128> @exp10_v2f128(<2 x fp128> %x) #0 {148; CHECK-LABEL: exp10_v2f128:149; CHECK:       ; %bb.0:150; CHECK-NEXT:    push r10151; CHECK-NEXT:    sub #48, r1152; CHECK-NEXT:    mov r12, r10153; CHECK-NEXT:    mov 82(r1), 14(r1)154; CHECK-NEXT:    mov 80(r1), 12(r1)155; CHECK-NEXT:    mov 78(r1), 10(r1)156; CHECK-NEXT:    mov 76(r1), 8(r1)157; CHECK-NEXT:    mov 74(r1), 6(r1)158; CHECK-NEXT:    mov 72(r1), 4(r1)159; CHECK-NEXT:    mov 70(r1), 2(r1)160; CHECK-NEXT:    mov 68(r1), 0(r1)161; CHECK-NEXT:    mov r1, r12162; CHECK-NEXT:    add #32, r12163; CHECK-NEXT:    call #exp10l164; CHECK-NEXT:    mov 66(r1), 14(r1)165; CHECK-NEXT:    mov 64(r1), 12(r1)166; CHECK-NEXT:    mov 62(r1), 10(r1)167; CHECK-NEXT:    mov 60(r1), 8(r1)168; CHECK-NEXT:    mov 58(r1), 6(r1)169; CHECK-NEXT:    mov 56(r1), 4(r1)170; CHECK-NEXT:    mov 54(r1), 2(r1)171; CHECK-NEXT:    mov 52(r1), 0(r1)172; CHECK-NEXT:    mov r1, r12173; CHECK-NEXT:    add #16, r12174; CHECK-NEXT:    call #exp10l175; CHECK-NEXT:    mov 46(r1), 30(r10)176; CHECK-NEXT:    mov 44(r1), 28(r10)177; CHECK-NEXT:    mov 42(r1), 26(r10)178; CHECK-NEXT:    mov 40(r1), 24(r10)179; CHECK-NEXT:    mov 38(r1), 22(r10)180; CHECK-NEXT:    mov 36(r1), 20(r10)181; CHECK-NEXT:    mov 34(r1), 18(r10)182; CHECK-NEXT:    mov 32(r1), 16(r10)183; CHECK-NEXT:    mov 30(r1), 14(r10)184; CHECK-NEXT:    mov 28(r1), 12(r10)185; CHECK-NEXT:    mov 26(r1), 10(r10)186; CHECK-NEXT:    mov 24(r1), 8(r10)187; CHECK-NEXT:    mov 22(r1), 6(r10)188; CHECK-NEXT:    mov 20(r1), 4(r10)189; CHECK-NEXT:    mov 18(r1), 2(r10)190; CHECK-NEXT:    mov 16(r1), 0(r10)191; CHECK-NEXT:    add #48, r1192; CHECK-NEXT:    pop r10193; CHECK-NEXT:    ret194  %r = call <2 x fp128> @llvm.exp10.v2f128(<2 x fp128> %x)195  ret <2 x fp128> %r196}197 198attributes #0 = { nounwind }199