brintos

brintos / llvm-project-archived public Read only

0
0
Text · 41.3 KiB · 58eb427 Raw
1035 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --version 52; RUN: llc -mtriple=mipsel < %s | FileCheck -check-prefix=MIPSEL %s3; RUN: llc -mtriple=mips < %s | FileCheck %s -check-prefixes=SOFT-FLOAT-324; RUN: llc -mtriple=mips64 < %s | FileCheck %s -check-prefixes=SOFT-FLOAT-645 6define { half, half } @test_sincos_f16(half %a) #0 {7; MIPSEL-LABEL: test_sincos_f16:8; MIPSEL:       # %bb.0:9; MIPSEL-NEXT:    addiu $sp, $sp, -3210; MIPSEL-NEXT:    sw $ra, 28($sp) # 4-byte Folded Spill11; MIPSEL-NEXT:    sw $16, 24($sp) # 4-byte Folded Spill12; MIPSEL-NEXT:    jal __extendhfsf213; MIPSEL-NEXT:    nop14; MIPSEL-NEXT:    addiu $5, $sp, 2015; MIPSEL-NEXT:    addiu $6, $sp, 1616; MIPSEL-NEXT:    jal sincosf17; MIPSEL-NEXT:    mov.s $f12, $f018; MIPSEL-NEXT:    jal __truncsfhf219; MIPSEL-NEXT:    lwc1 $f12, 20($sp)20; MIPSEL-NEXT:    move $16, $221; MIPSEL-NEXT:    jal __truncsfhf222; MIPSEL-NEXT:    lwc1 $f12, 16($sp)23; MIPSEL-NEXT:    move $3, $224; MIPSEL-NEXT:    move $2, $1625; MIPSEL-NEXT:    lw $16, 24($sp) # 4-byte Folded Reload26; MIPSEL-NEXT:    lw $ra, 28($sp) # 4-byte Folded Reload27; MIPSEL-NEXT:    jr $ra28; MIPSEL-NEXT:    addiu $sp, $sp, 3229;30; SOFT-FLOAT-32-LABEL: test_sincos_f16:31; SOFT-FLOAT-32:       # %bb.0:32; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, -3233; SOFT-FLOAT-32-NEXT:    sw $ra, 28($sp) # 4-byte Folded Spill34; SOFT-FLOAT-32-NEXT:    sw $16, 24($sp) # 4-byte Folded Spill35; SOFT-FLOAT-32-NEXT:    jal __extendhfsf236; SOFT-FLOAT-32-NEXT:    nop37; SOFT-FLOAT-32-NEXT:    addiu $5, $sp, 2038; SOFT-FLOAT-32-NEXT:    addiu $6, $sp, 1639; SOFT-FLOAT-32-NEXT:    jal sincosf40; SOFT-FLOAT-32-NEXT:    mov.s $f12, $f041; SOFT-FLOAT-32-NEXT:    jal __truncsfhf242; SOFT-FLOAT-32-NEXT:    lwc1 $f12, 20($sp)43; SOFT-FLOAT-32-NEXT:    move $16, $244; SOFT-FLOAT-32-NEXT:    jal __truncsfhf245; SOFT-FLOAT-32-NEXT:    lwc1 $f12, 16($sp)46; SOFT-FLOAT-32-NEXT:    move $3, $247; SOFT-FLOAT-32-NEXT:    move $2, $1648; SOFT-FLOAT-32-NEXT:    lw $16, 24($sp) # 4-byte Folded Reload49; SOFT-FLOAT-32-NEXT:    lw $ra, 28($sp) # 4-byte Folded Reload50; SOFT-FLOAT-32-NEXT:    jr $ra51; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, 3252;53; SOFT-FLOAT-64-LABEL: test_sincos_f16:54; SOFT-FLOAT-64:       # %bb.0:55; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, -3256; SOFT-FLOAT-64-NEXT:    sd $ra, 24($sp) # 8-byte Folded Spill57; SOFT-FLOAT-64-NEXT:    sd $16, 16($sp) # 8-byte Folded Spill58; SOFT-FLOAT-64-NEXT:    jal __extendhfsf259; SOFT-FLOAT-64-NEXT:    sll $4, $4, 060; SOFT-FLOAT-64-NEXT:    daddiu $5, $sp, 1261; SOFT-FLOAT-64-NEXT:    daddiu $6, $sp, 862; SOFT-FLOAT-64-NEXT:    jal sincosf63; SOFT-FLOAT-64-NEXT:    mov.s $f12, $f064; SOFT-FLOAT-64-NEXT:    jal __truncsfhf265; SOFT-FLOAT-64-NEXT:    lwc1 $f12, 12($sp)66; SOFT-FLOAT-64-NEXT:    move $16, $267; SOFT-FLOAT-64-NEXT:    jal __truncsfhf268; SOFT-FLOAT-64-NEXT:    lwc1 $f12, 8($sp)69; SOFT-FLOAT-64-NEXT:    move $3, $270; SOFT-FLOAT-64-NEXT:    move $2, $1671; SOFT-FLOAT-64-NEXT:    ld $16, 16($sp) # 8-byte Folded Reload72; SOFT-FLOAT-64-NEXT:    ld $ra, 24($sp) # 8-byte Folded Reload73; SOFT-FLOAT-64-NEXT:    jr $ra74; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, 3275  %result = call { half, half } @llvm.sincos.f16(half %a)76  ret { half, half } %result77}78 79define half @test_sincos_f16_only_use_sin(half %a) #0 {80; MIPSEL-LABEL: test_sincos_f16_only_use_sin:81; MIPSEL:       # %bb.0:82; MIPSEL-NEXT:    addiu $sp, $sp, -3283; MIPSEL-NEXT:    sw $ra, 28($sp) # 4-byte Folded Spill84; MIPSEL-NEXT:    jal __extendhfsf285; MIPSEL-NEXT:    nop86; MIPSEL-NEXT:    addiu $5, $sp, 2487; MIPSEL-NEXT:    addiu $6, $sp, 2088; MIPSEL-NEXT:    jal sincosf89; MIPSEL-NEXT:    mov.s $f12, $f090; MIPSEL-NEXT:    jal __truncsfhf291; MIPSEL-NEXT:    lwc1 $f12, 24($sp)92; MIPSEL-NEXT:    lw $ra, 28($sp) # 4-byte Folded Reload93; MIPSEL-NEXT:    jr $ra94; MIPSEL-NEXT:    addiu $sp, $sp, 3295;96; SOFT-FLOAT-32-LABEL: test_sincos_f16_only_use_sin:97; SOFT-FLOAT-32:       # %bb.0:98; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, -3299; SOFT-FLOAT-32-NEXT:    sw $ra, 28($sp) # 4-byte Folded Spill100; SOFT-FLOAT-32-NEXT:    jal __extendhfsf2101; SOFT-FLOAT-32-NEXT:    nop102; SOFT-FLOAT-32-NEXT:    addiu $5, $sp, 24103; SOFT-FLOAT-32-NEXT:    addiu $6, $sp, 20104; SOFT-FLOAT-32-NEXT:    jal sincosf105; SOFT-FLOAT-32-NEXT:    mov.s $f12, $f0106; SOFT-FLOAT-32-NEXT:    jal __truncsfhf2107; SOFT-FLOAT-32-NEXT:    lwc1 $f12, 24($sp)108; SOFT-FLOAT-32-NEXT:    lw $ra, 28($sp) # 4-byte Folded Reload109; SOFT-FLOAT-32-NEXT:    jr $ra110; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, 32111;112; SOFT-FLOAT-64-LABEL: test_sincos_f16_only_use_sin:113; SOFT-FLOAT-64:       # %bb.0:114; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, -16115; SOFT-FLOAT-64-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill116; SOFT-FLOAT-64-NEXT:    jal __extendhfsf2117; SOFT-FLOAT-64-NEXT:    sll $4, $4, 0118; SOFT-FLOAT-64-NEXT:    daddiu $5, $sp, 4119; SOFT-FLOAT-64-NEXT:    daddiu $6, $sp, 0120; SOFT-FLOAT-64-NEXT:    jal sincosf121; SOFT-FLOAT-64-NEXT:    mov.s $f12, $f0122; SOFT-FLOAT-64-NEXT:    jal __truncsfhf2123; SOFT-FLOAT-64-NEXT:    lwc1 $f12, 4($sp)124; SOFT-FLOAT-64-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload125; SOFT-FLOAT-64-NEXT:    jr $ra126; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, 16127  %result = call { half, half } @llvm.sincos.f16(half %a)128  %result.0 = extractvalue { half, half } %result, 0129  ret half %result.0130}131 132define half @test_sincos_f16_only_use_cos(half %a) #0 {133; MIPSEL-LABEL: test_sincos_f16_only_use_cos:134; MIPSEL:       # %bb.0:135; MIPSEL-NEXT:    addiu $sp, $sp, -32136; MIPSEL-NEXT:    sw $ra, 28($sp) # 4-byte Folded Spill137; MIPSEL-NEXT:    jal __extendhfsf2138; MIPSEL-NEXT:    nop139; MIPSEL-NEXT:    addiu $5, $sp, 24140; MIPSEL-NEXT:    addiu $6, $sp, 20141; MIPSEL-NEXT:    jal sincosf142; MIPSEL-NEXT:    mov.s $f12, $f0143; MIPSEL-NEXT:    jal __truncsfhf2144; MIPSEL-NEXT:    lwc1 $f12, 20($sp)145; MIPSEL-NEXT:    lw $ra, 28($sp) # 4-byte Folded Reload146; MIPSEL-NEXT:    jr $ra147; MIPSEL-NEXT:    addiu $sp, $sp, 32148;149; SOFT-FLOAT-32-LABEL: test_sincos_f16_only_use_cos:150; SOFT-FLOAT-32:       # %bb.0:151; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, -32152; SOFT-FLOAT-32-NEXT:    sw $ra, 28($sp) # 4-byte Folded Spill153; SOFT-FLOAT-32-NEXT:    jal __extendhfsf2154; SOFT-FLOAT-32-NEXT:    nop155; SOFT-FLOAT-32-NEXT:    addiu $5, $sp, 24156; SOFT-FLOAT-32-NEXT:    addiu $6, $sp, 20157; SOFT-FLOAT-32-NEXT:    jal sincosf158; SOFT-FLOAT-32-NEXT:    mov.s $f12, $f0159; SOFT-FLOAT-32-NEXT:    jal __truncsfhf2160; SOFT-FLOAT-32-NEXT:    lwc1 $f12, 20($sp)161; SOFT-FLOAT-32-NEXT:    lw $ra, 28($sp) # 4-byte Folded Reload162; SOFT-FLOAT-32-NEXT:    jr $ra163; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, 32164;165; SOFT-FLOAT-64-LABEL: test_sincos_f16_only_use_cos:166; SOFT-FLOAT-64:       # %bb.0:167; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, -16168; SOFT-FLOAT-64-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill169; SOFT-FLOAT-64-NEXT:    jal __extendhfsf2170; SOFT-FLOAT-64-NEXT:    sll $4, $4, 0171; SOFT-FLOAT-64-NEXT:    daddiu $5, $sp, 4172; SOFT-FLOAT-64-NEXT:    daddiu $6, $sp, 0173; SOFT-FLOAT-64-NEXT:    jal sincosf174; SOFT-FLOAT-64-NEXT:    mov.s $f12, $f0175; SOFT-FLOAT-64-NEXT:    jal __truncsfhf2176; SOFT-FLOAT-64-NEXT:    lwc1 $f12, 0($sp)177; SOFT-FLOAT-64-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload178; SOFT-FLOAT-64-NEXT:    jr $ra179; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, 16180  %result = call { half, half } @llvm.sincos.f16(half %a)181  %result.1 = extractvalue { half, half } %result, 1182  ret half %result.1183}184 185define { <2 x half>, <2 x half> } @test_sincos_v2f16(<2 x half> %a) #0 {186; MIPSEL-LABEL: test_sincos_v2f16:187; MIPSEL:       # %bb.0:188; MIPSEL-NEXT:    addiu $sp, $sp, -48189; MIPSEL-NEXT:    sw $ra, 44($sp) # 4-byte Folded Spill190; MIPSEL-NEXT:    sw $17, 40($sp) # 4-byte Folded Spill191; MIPSEL-NEXT:    sw $16, 36($sp) # 4-byte Folded Spill192; MIPSEL-NEXT:    move $16, $5193; MIPSEL-NEXT:    move $17, $4194; MIPSEL-NEXT:    jal __extendhfsf2195; MIPSEL-NEXT:    move $4, $5196; MIPSEL-NEXT:    addiu $5, $sp, 24197; MIPSEL-NEXT:    addiu $6, $sp, 20198; MIPSEL-NEXT:    jal sincosf199; MIPSEL-NEXT:    mov.s $f12, $f0200; MIPSEL-NEXT:    jal __extendhfsf2201; MIPSEL-NEXT:    srl $4, $16, 16202; MIPSEL-NEXT:    addiu $5, $sp, 32203; MIPSEL-NEXT:    addiu $6, $sp, 28204; MIPSEL-NEXT:    jal sincosf205; MIPSEL-NEXT:    mov.s $f12, $f0206; MIPSEL-NEXT:    jal __truncsfhf2207; MIPSEL-NEXT:    lwc1 $f12, 20($sp)208; MIPSEL-NEXT:    lwc1 $f12, 24($sp)209; MIPSEL-NEXT:    jal __truncsfhf2210; MIPSEL-NEXT:    sh $2, 4($17)211; MIPSEL-NEXT:    sh $2, 0($17)212; MIPSEL-NEXT:    jal __truncsfhf2213; MIPSEL-NEXT:    lwc1 $f12, 28($sp)214; MIPSEL-NEXT:    sh $2, 6($17)215; MIPSEL-NEXT:    jal __truncsfhf2216; MIPSEL-NEXT:    lwc1 $f12, 32($sp)217; MIPSEL-NEXT:    sh $2, 2($17)218; MIPSEL-NEXT:    lw $16, 36($sp) # 4-byte Folded Reload219; MIPSEL-NEXT:    lw $17, 40($sp) # 4-byte Folded Reload220; MIPSEL-NEXT:    lw $ra, 44($sp) # 4-byte Folded Reload221; MIPSEL-NEXT:    jr $ra222; MIPSEL-NEXT:    addiu $sp, $sp, 48223;224; SOFT-FLOAT-32-LABEL: test_sincos_v2f16:225; SOFT-FLOAT-32:       # %bb.0:226; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, -48227; SOFT-FLOAT-32-NEXT:    sw $ra, 44($sp) # 4-byte Folded Spill228; SOFT-FLOAT-32-NEXT:    sw $17, 40($sp) # 4-byte Folded Spill229; SOFT-FLOAT-32-NEXT:    sw $16, 36($sp) # 4-byte Folded Spill230; SOFT-FLOAT-32-NEXT:    move $16, $5231; SOFT-FLOAT-32-NEXT:    move $17, $4232; SOFT-FLOAT-32-NEXT:    jal __extendhfsf2233; SOFT-FLOAT-32-NEXT:    move $4, $5234; SOFT-FLOAT-32-NEXT:    addiu $5, $sp, 24235; SOFT-FLOAT-32-NEXT:    addiu $6, $sp, 20236; SOFT-FLOAT-32-NEXT:    jal sincosf237; SOFT-FLOAT-32-NEXT:    mov.s $f12, $f0238; SOFT-FLOAT-32-NEXT:    jal __extendhfsf2239; SOFT-FLOAT-32-NEXT:    srl $4, $16, 16240; SOFT-FLOAT-32-NEXT:    addiu $5, $sp, 32241; SOFT-FLOAT-32-NEXT:    addiu $6, $sp, 28242; SOFT-FLOAT-32-NEXT:    jal sincosf243; SOFT-FLOAT-32-NEXT:    mov.s $f12, $f0244; SOFT-FLOAT-32-NEXT:    jal __truncsfhf2245; SOFT-FLOAT-32-NEXT:    lwc1 $f12, 20($sp)246; SOFT-FLOAT-32-NEXT:    lwc1 $f12, 24($sp)247; SOFT-FLOAT-32-NEXT:    jal __truncsfhf2248; SOFT-FLOAT-32-NEXT:    sh $2, 6($17)249; SOFT-FLOAT-32-NEXT:    sh $2, 2($17)250; SOFT-FLOAT-32-NEXT:    jal __truncsfhf2251; SOFT-FLOAT-32-NEXT:    lwc1 $f12, 28($sp)252; SOFT-FLOAT-32-NEXT:    sh $2, 4($17)253; SOFT-FLOAT-32-NEXT:    jal __truncsfhf2254; SOFT-FLOAT-32-NEXT:    lwc1 $f12, 32($sp)255; SOFT-FLOAT-32-NEXT:    sh $2, 0($17)256; SOFT-FLOAT-32-NEXT:    lw $16, 36($sp) # 4-byte Folded Reload257; SOFT-FLOAT-32-NEXT:    lw $17, 40($sp) # 4-byte Folded Reload258; SOFT-FLOAT-32-NEXT:    lw $ra, 44($sp) # 4-byte Folded Reload259; SOFT-FLOAT-32-NEXT:    jr $ra260; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, 48261;262; SOFT-FLOAT-64-LABEL: test_sincos_v2f16:263; SOFT-FLOAT-64:       # %bb.0:264; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, -48265; SOFT-FLOAT-64-NEXT:    sd $ra, 40($sp) # 8-byte Folded Spill266; SOFT-FLOAT-64-NEXT:    sd $17, 32($sp) # 8-byte Folded Spill267; SOFT-FLOAT-64-NEXT:    sd $16, 24($sp) # 8-byte Folded Spill268; SOFT-FLOAT-64-NEXT:    move $17, $5269; SOFT-FLOAT-64-NEXT:    move $16, $4270; SOFT-FLOAT-64-NEXT:    jal __extendhfsf2271; SOFT-FLOAT-64-NEXT:    sll $4, $5, 0272; SOFT-FLOAT-64-NEXT:    daddiu $5, $sp, 12273; SOFT-FLOAT-64-NEXT:    daddiu $6, $sp, 8274; SOFT-FLOAT-64-NEXT:    jal sincosf275; SOFT-FLOAT-64-NEXT:    mov.s $f12, $f0276; SOFT-FLOAT-64-NEXT:    sll $1, $17, 0277; SOFT-FLOAT-64-NEXT:    jal __extendhfsf2278; SOFT-FLOAT-64-NEXT:    srl $4, $1, 16279; SOFT-FLOAT-64-NEXT:    daddiu $5, $sp, 20280; SOFT-FLOAT-64-NEXT:    daddiu $6, $sp, 16281; SOFT-FLOAT-64-NEXT:    jal sincosf282; SOFT-FLOAT-64-NEXT:    mov.s $f12, $f0283; SOFT-FLOAT-64-NEXT:    jal __truncsfhf2284; SOFT-FLOAT-64-NEXT:    lwc1 $f12, 8($sp)285; SOFT-FLOAT-64-NEXT:    lwc1 $f12, 12($sp)286; SOFT-FLOAT-64-NEXT:    jal __truncsfhf2287; SOFT-FLOAT-64-NEXT:    sh $2, 6($16)288; SOFT-FLOAT-64-NEXT:    sh $2, 2($16)289; SOFT-FLOAT-64-NEXT:    jal __truncsfhf2290; SOFT-FLOAT-64-NEXT:    lwc1 $f12, 16($sp)291; SOFT-FLOAT-64-NEXT:    sh $2, 4($16)292; SOFT-FLOAT-64-NEXT:    jal __truncsfhf2293; SOFT-FLOAT-64-NEXT:    lwc1 $f12, 20($sp)294; SOFT-FLOAT-64-NEXT:    sh $2, 0($16)295; SOFT-FLOAT-64-NEXT:    ld $16, 24($sp) # 8-byte Folded Reload296; SOFT-FLOAT-64-NEXT:    ld $17, 32($sp) # 8-byte Folded Reload297; SOFT-FLOAT-64-NEXT:    ld $ra, 40($sp) # 8-byte Folded Reload298; SOFT-FLOAT-64-NEXT:    jr $ra299; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, 48300  %result = call { <2 x half>, <2 x half> } @llvm.sincos.v2f16(<2 x half> %a)301  ret { <2 x half>, <2 x half> } %result302}303 304define { float, float } @test_sincos_f32(float %a) #0 {305; MIPSEL-LABEL: test_sincos_f32:306; MIPSEL:       # %bb.0:307; MIPSEL-NEXT:    addiu $sp, $sp, -32308; MIPSEL-NEXT:    sw $ra, 28($sp) # 4-byte Folded Spill309; MIPSEL-NEXT:    addiu $5, $sp, 24310; MIPSEL-NEXT:    jal sincosf311; MIPSEL-NEXT:    addiu $6, $sp, 20312; MIPSEL-NEXT:    lwc1 $f0, 24($sp)313; MIPSEL-NEXT:    lwc1 $f2, 20($sp)314; MIPSEL-NEXT:    lw $ra, 28($sp) # 4-byte Folded Reload315; MIPSEL-NEXT:    jr $ra316; MIPSEL-NEXT:    addiu $sp, $sp, 32317;318; SOFT-FLOAT-32-LABEL: test_sincos_f32:319; SOFT-FLOAT-32:       # %bb.0:320; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, -32321; SOFT-FLOAT-32-NEXT:    sw $ra, 28($sp) # 4-byte Folded Spill322; SOFT-FLOAT-32-NEXT:    addiu $5, $sp, 24323; SOFT-FLOAT-32-NEXT:    jal sincosf324; SOFT-FLOAT-32-NEXT:    addiu $6, $sp, 20325; SOFT-FLOAT-32-NEXT:    lwc1 $f0, 24($sp)326; SOFT-FLOAT-32-NEXT:    lwc1 $f2, 20($sp)327; SOFT-FLOAT-32-NEXT:    lw $ra, 28($sp) # 4-byte Folded Reload328; SOFT-FLOAT-32-NEXT:    jr $ra329; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, 32330;331; SOFT-FLOAT-64-LABEL: test_sincos_f32:332; SOFT-FLOAT-64:       # %bb.0:333; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, -16334; SOFT-FLOAT-64-NEXT:    sd $ra, 8($sp) # 8-byte Folded Spill335; SOFT-FLOAT-64-NEXT:    daddiu $5, $sp, 4336; SOFT-FLOAT-64-NEXT:    jal sincosf337; SOFT-FLOAT-64-NEXT:    daddiu $6, $sp, 0338; SOFT-FLOAT-64-NEXT:    lwc1 $f0, 4($sp)339; SOFT-FLOAT-64-NEXT:    lwc1 $f2, 0($sp)340; SOFT-FLOAT-64-NEXT:    ld $ra, 8($sp) # 8-byte Folded Reload341; SOFT-FLOAT-64-NEXT:    jr $ra342; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, 16343  %result = call { float, float } @llvm.sincos.f32(float %a)344  ret { float, float } %result345}346 347define { <2 x float>, <2 x float> } @test_sincos_v2f32(<2 x float> %a) #0 {348; MIPSEL-LABEL: test_sincos_v2f32:349; MIPSEL:       # %bb.0:350; MIPSEL-NEXT:    addiu $sp, $sp, -32351; MIPSEL-NEXT:    sw $ra, 28($sp) # 4-byte Folded Spill352; MIPSEL-NEXT:    sw $17, 24($sp) # 4-byte Folded Spill353; MIPSEL-NEXT:    sw $16, 20($sp) # 4-byte Folded Spill354; MIPSEL-NEXT:    move $16, $6355; MIPSEL-NEXT:    move $17, $4356; MIPSEL-NEXT:    mtc1 $7, $f12357; MIPSEL-NEXT:    addiu $5, $4, 4358; MIPSEL-NEXT:    jal sincosf359; MIPSEL-NEXT:    addiu $6, $4, 12360; MIPSEL-NEXT:    mtc1 $16, $f12361; MIPSEL-NEXT:    addiu $6, $17, 8362; MIPSEL-NEXT:    jal sincosf363; MIPSEL-NEXT:    move $5, $17364; MIPSEL-NEXT:    lw $16, 20($sp) # 4-byte Folded Reload365; MIPSEL-NEXT:    lw $17, 24($sp) # 4-byte Folded Reload366; MIPSEL-NEXT:    lw $ra, 28($sp) # 4-byte Folded Reload367; MIPSEL-NEXT:    jr $ra368; MIPSEL-NEXT:    addiu $sp, $sp, 32369;370; SOFT-FLOAT-32-LABEL: test_sincos_v2f32:371; SOFT-FLOAT-32:       # %bb.0:372; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, -32373; SOFT-FLOAT-32-NEXT:    sw $ra, 28($sp) # 4-byte Folded Spill374; SOFT-FLOAT-32-NEXT:    sw $17, 24($sp) # 4-byte Folded Spill375; SOFT-FLOAT-32-NEXT:    sw $16, 20($sp) # 4-byte Folded Spill376; SOFT-FLOAT-32-NEXT:    move $16, $6377; SOFT-FLOAT-32-NEXT:    move $17, $4378; SOFT-FLOAT-32-NEXT:    mtc1 $7, $f12379; SOFT-FLOAT-32-NEXT:    addiu $5, $4, 4380; SOFT-FLOAT-32-NEXT:    jal sincosf381; SOFT-FLOAT-32-NEXT:    addiu $6, $4, 12382; SOFT-FLOAT-32-NEXT:    mtc1 $16, $f12383; SOFT-FLOAT-32-NEXT:    addiu $6, $17, 8384; SOFT-FLOAT-32-NEXT:    jal sincosf385; SOFT-FLOAT-32-NEXT:    move $5, $17386; SOFT-FLOAT-32-NEXT:    lw $16, 20($sp) # 4-byte Folded Reload387; SOFT-FLOAT-32-NEXT:    lw $17, 24($sp) # 4-byte Folded Reload388; SOFT-FLOAT-32-NEXT:    lw $ra, 28($sp) # 4-byte Folded Reload389; SOFT-FLOAT-32-NEXT:    jr $ra390; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, 32391;392; SOFT-FLOAT-64-LABEL: test_sincos_v2f32:393; SOFT-FLOAT-64:       # %bb.0:394; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, -32395; SOFT-FLOAT-64-NEXT:    sd $ra, 24($sp) # 8-byte Folded Spill396; SOFT-FLOAT-64-NEXT:    sd $16, 16($sp) # 8-byte Folded Spill397; SOFT-FLOAT-64-NEXT:    move $16, $4398; SOFT-FLOAT-64-NEXT:    dsrl $1, $4, 32399; SOFT-FLOAT-64-NEXT:    sll $1, $1, 0400; SOFT-FLOAT-64-NEXT:    mtc1 $1, $f12401; SOFT-FLOAT-64-NEXT:    daddiu $5, $sp, 12402; SOFT-FLOAT-64-NEXT:    jal sincosf403; SOFT-FLOAT-64-NEXT:    daddiu $6, $sp, 8404; SOFT-FLOAT-64-NEXT:    sll $1, $16, 0405; SOFT-FLOAT-64-NEXT:    mtc1 $1, $f12406; SOFT-FLOAT-64-NEXT:    daddiu $5, $sp, 4407; SOFT-FLOAT-64-NEXT:    jal sincosf408; SOFT-FLOAT-64-NEXT:    daddiu $6, $sp, 0409; SOFT-FLOAT-64-NEXT:    lwc1 $f0, 12($sp)410; SOFT-FLOAT-64-NEXT:    mfc1 $1, $f0411; SOFT-FLOAT-64-NEXT:    dsll $1, $1, 32412; SOFT-FLOAT-64-NEXT:    lwc1 $f0, 8($sp)413; SOFT-FLOAT-64-NEXT:    mfc1 $3, $f0414; SOFT-FLOAT-64-NEXT:    lwc1 $f0, 4($sp)415; SOFT-FLOAT-64-NEXT:    mfc1 $2, $f0416; SOFT-FLOAT-64-NEXT:    dsll $2, $2, 32417; SOFT-FLOAT-64-NEXT:    dsrl $2, $2, 32418; SOFT-FLOAT-64-NEXT:    or $2, $2, $1419; SOFT-FLOAT-64-NEXT:    dsll $1, $3, 32420; SOFT-FLOAT-64-NEXT:    lwc1 $f0, 0($sp)421; SOFT-FLOAT-64-NEXT:    mfc1 $3, $f0422; SOFT-FLOAT-64-NEXT:    dsll $3, $3, 32423; SOFT-FLOAT-64-NEXT:    dsrl $3, $3, 32424; SOFT-FLOAT-64-NEXT:    or $3, $3, $1425; SOFT-FLOAT-64-NEXT:    ld $16, 16($sp) # 8-byte Folded Reload426; SOFT-FLOAT-64-NEXT:    ld $ra, 24($sp) # 8-byte Folded Reload427; SOFT-FLOAT-64-NEXT:    jr $ra428; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, 32429; SOFT-FLOAT-64R2-LABEL: test_sincos_v2f32:430; SOFT-FLOAT-64R2:       # %bb.0:431; SOFT-FLOAT-64R2-NEXT:    daddiu $sp, $sp, -32432; SOFT-FLOAT-64R2-NEXT:    sd $ra, 24($sp) # 8-byte Folded Spill433; SOFT-FLOAT-64R2-NEXT:    sd $16, 16($sp) # 8-byte Folded Spill434; SOFT-FLOAT-64R2-NEXT:    move $16, $4435; SOFT-FLOAT-64R2-NEXT:    dsrl $1, $4, 32436; SOFT-FLOAT-64R2-NEXT:    sll $1, $1, 0437; SOFT-FLOAT-64R2-NEXT:    mtc1 $1, $f12438; SOFT-FLOAT-64R2-NEXT:    daddiu $5, $sp, 12439; SOFT-FLOAT-64R2-NEXT:    jal sincosf440; SOFT-FLOAT-64R2-NEXT:    daddiu $6, $sp, 8441; SOFT-FLOAT-64R2-NEXT:    sll $1, $16, 0442; SOFT-FLOAT-64R2-NEXT:    mtc1 $1, $f12443; SOFT-FLOAT-64R2-NEXT:    daddiu $5, $sp, 4444; SOFT-FLOAT-64R2-NEXT:    jal sincosf445; SOFT-FLOAT-64R2-NEXT:    daddiu $6, $sp, 0446; SOFT-FLOAT-64R2-NEXT:    lwc1 $f0, 12($sp)447; SOFT-FLOAT-64R2-NEXT:    mfc1 $1, $f0448; SOFT-FLOAT-64R2-NEXT:    dsll $1, $1, 32449; SOFT-FLOAT-64R2-NEXT:    lwc1 $f0, 4($sp)450; SOFT-FLOAT-64R2-NEXT:    mfc1 $2, $f0451; SOFT-FLOAT-64R2-NEXT:    dext $2, $2, 0, 32452; SOFT-FLOAT-64R2-NEXT:    lwc1 $f0, 8($sp)453; SOFT-FLOAT-64R2-NEXT:    or $2, $2, $1454; SOFT-FLOAT-64R2-NEXT:    mfc1 $1, $f0455; SOFT-FLOAT-64R2-NEXT:    dsll $1, $1, 32456; SOFT-FLOAT-64R2-NEXT:    lwc1 $f0, 0($sp)457; SOFT-FLOAT-64R2-NEXT:    mfc1 $3, $f0458; SOFT-FLOAT-64R2-NEXT:    dext $3, $3, 0, 32459; SOFT-FLOAT-64R2-NEXT:    or $3, $3, $1460; SOFT-FLOAT-64R2-NEXT:    ld $16, 16($sp) # 8-byte Folded Reload461; SOFT-FLOAT-64R2-NEXT:    ld $ra, 24($sp) # 8-byte Folded Reload462; SOFT-FLOAT-64R2-NEXT:    jr $ra463; SOFT-FLOAT-64R2-NEXT:    daddiu $sp, $sp, 32464  %result = call { <2 x float>, <2 x float> } @llvm.sincos.v2f32(<2 x float> %a)465  ret { <2 x float>, <2 x float> } %result466}467 468define { <3 x float>, <3 x float> } @test_sincos_v3f32(<3 x float> %a) #0 {469; MIPSEL-LABEL: test_sincos_v3f32:470; MIPSEL:       # %bb.0:471; MIPSEL-NEXT:    addiu $sp, $sp, -32472; MIPSEL-NEXT:    sw $ra, 28($sp) # 4-byte Folded Spill473; MIPSEL-NEXT:    sw $18, 24($sp) # 4-byte Folded Spill474; MIPSEL-NEXT:    sw $17, 20($sp) # 4-byte Folded Spill475; MIPSEL-NEXT:    sw $16, 16($sp) # 4-byte Folded Spill476; MIPSEL-NEXT:    move $16, $6477; MIPSEL-NEXT:    move $17, $5478; MIPSEL-NEXT:    move $18, $4479; MIPSEL-NEXT:    mtc1 $7, $f12480; MIPSEL-NEXT:    addiu $5, $4, 8481; MIPSEL-NEXT:    jal sincosf482; MIPSEL-NEXT:    addiu $6, $4, 24483; MIPSEL-NEXT:    mtc1 $16, $f12484; MIPSEL-NEXT:    addiu $5, $18, 4485; MIPSEL-NEXT:    jal sincosf486; MIPSEL-NEXT:    addiu $6, $18, 20487; MIPSEL-NEXT:    mtc1 $17, $f12488; MIPSEL-NEXT:    addiu $6, $18, 16489; MIPSEL-NEXT:    jal sincosf490; MIPSEL-NEXT:    move $5, $18491; MIPSEL-NEXT:    lw $16, 16($sp) # 4-byte Folded Reload492; MIPSEL-NEXT:    lw $17, 20($sp) # 4-byte Folded Reload493; MIPSEL-NEXT:    lw $18, 24($sp) # 4-byte Folded Reload494; MIPSEL-NEXT:    lw $ra, 28($sp) # 4-byte Folded Reload495; MIPSEL-NEXT:    jr $ra496; MIPSEL-NEXT:    addiu $sp, $sp, 32497;498; SOFT-FLOAT-32-LABEL: test_sincos_v3f32:499; SOFT-FLOAT-32:       # %bb.0:500; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, -32501; SOFT-FLOAT-32-NEXT:    sw $ra, 28($sp) # 4-byte Folded Spill502; SOFT-FLOAT-32-NEXT:    sw $18, 24($sp) # 4-byte Folded Spill503; SOFT-FLOAT-32-NEXT:    sw $17, 20($sp) # 4-byte Folded Spill504; SOFT-FLOAT-32-NEXT:    sw $16, 16($sp) # 4-byte Folded Spill505; SOFT-FLOAT-32-NEXT:    move $16, $6506; SOFT-FLOAT-32-NEXT:    move $17, $5507; SOFT-FLOAT-32-NEXT:    move $18, $4508; SOFT-FLOAT-32-NEXT:    mtc1 $7, $f12509; SOFT-FLOAT-32-NEXT:    addiu $5, $4, 8510; SOFT-FLOAT-32-NEXT:    jal sincosf511; SOFT-FLOAT-32-NEXT:    addiu $6, $4, 24512; SOFT-FLOAT-32-NEXT:    mtc1 $16, $f12513; SOFT-FLOAT-32-NEXT:    addiu $5, $18, 4514; SOFT-FLOAT-32-NEXT:    jal sincosf515; SOFT-FLOAT-32-NEXT:    addiu $6, $18, 20516; SOFT-FLOAT-32-NEXT:    mtc1 $17, $f12517; SOFT-FLOAT-32-NEXT:    addiu $6, $18, 16518; SOFT-FLOAT-32-NEXT:    jal sincosf519; SOFT-FLOAT-32-NEXT:    move $5, $18520; SOFT-FLOAT-32-NEXT:    lw $16, 16($sp) # 4-byte Folded Reload521; SOFT-FLOAT-32-NEXT:    lw $17, 20($sp) # 4-byte Folded Reload522; SOFT-FLOAT-32-NEXT:    lw $18, 24($sp) # 4-byte Folded Reload523; SOFT-FLOAT-32-NEXT:    lw $ra, 28($sp) # 4-byte Folded Reload524; SOFT-FLOAT-32-NEXT:    jr $ra525; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, 32526;527; SOFT-FLOAT-64-LABEL: test_sincos_v3f32:528; SOFT-FLOAT-64:       # %bb.0:529; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, -48530; SOFT-FLOAT-64-NEXT:    sdc1 $f25, 40($sp) # 8-byte Folded Spill531; SOFT-FLOAT-64-NEXT:    sdc1 $f24, 32($sp) # 8-byte Folded Spill532; SOFT-FLOAT-64-NEXT:    sd $ra, 24($sp) # 8-byte Folded Spill533; SOFT-FLOAT-64-NEXT:    sd $16, 16($sp) # 8-byte Folded Spill534; SOFT-FLOAT-64-NEXT:    mov.s $f24, $f15535; SOFT-FLOAT-64-NEXT:    mov.s $f25, $f14536; SOFT-FLOAT-64-NEXT:    mov.s $f12, $f13537; SOFT-FLOAT-64-NEXT:    move $16, $4538; SOFT-FLOAT-64-NEXT:    daddiu $5, $sp, 4539; SOFT-FLOAT-64-NEXT:    jal sincosf540; SOFT-FLOAT-64-NEXT:    daddiu $6, $sp, 0541; SOFT-FLOAT-64-NEXT:    daddiu $5, $sp, 12542; SOFT-FLOAT-64-NEXT:    daddiu $6, $sp, 8543; SOFT-FLOAT-64-NEXT:    jal sincosf544; SOFT-FLOAT-64-NEXT:    mov.s $f12, $f25545; SOFT-FLOAT-64-NEXT:    daddiu $5, $16, 8546; SOFT-FLOAT-64-NEXT:    daddiu $6, $16, 24547; SOFT-FLOAT-64-NEXT:    jal sincosf548; SOFT-FLOAT-64-NEXT:    mov.s $f12, $f24549; SOFT-FLOAT-64-NEXT:    lwc1 $f0, 0($sp)550; SOFT-FLOAT-64-NEXT:    mfc1 $1, $f0551; SOFT-FLOAT-64-NEXT:    lwc1 $f0, 4($sp)552; SOFT-FLOAT-64-NEXT:    mfc1 $2, $f0553; SOFT-FLOAT-64-NEXT:    dsll $1, $1, 32554; SOFT-FLOAT-64-NEXT:    lwc1 $f0, 8($sp)555; SOFT-FLOAT-64-NEXT:    mfc1 $3, $f0556; SOFT-FLOAT-64-NEXT:    dsll $3, $3, 32557; SOFT-FLOAT-64-NEXT:    dsrl $3, $3, 32558; SOFT-FLOAT-64-NEXT:    or $1, $3, $1559; SOFT-FLOAT-64-NEXT:    sd $1, 16($16)560; SOFT-FLOAT-64-NEXT:    dsll $1, $2, 32561; SOFT-FLOAT-64-NEXT:    lwc1 $f0, 12($sp)562; SOFT-FLOAT-64-NEXT:    mfc1 $2, $f0563; SOFT-FLOAT-64-NEXT:    dsll $2, $2, 32564; SOFT-FLOAT-64-NEXT:    dsrl $2, $2, 32565; SOFT-FLOAT-64-NEXT:    or $1, $2, $1566; SOFT-FLOAT-64-NEXT:    sd $1, 0($16)567; SOFT-FLOAT-64-NEXT:    ld $16, 16($sp) # 8-byte Folded Reload568; SOFT-FLOAT-64-NEXT:    ld $ra, 24($sp) # 8-byte Folded Reload569; SOFT-FLOAT-64-NEXT:    ldc1 $f24, 32($sp) # 8-byte Folded Reload570; SOFT-FLOAT-64-NEXT:    ldc1 $f25, 40($sp) # 8-byte Folded Reload571; SOFT-FLOAT-64-NEXT:    jr $ra572; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, 48573; SOFT-FLOAT-64R2-LABEL: test_sincos_v3f32:574; SOFT-FLOAT-64R2:       # %bb.0:575; SOFT-FLOAT-64R2-NEXT:    daddiu $sp, $sp, -48576; SOFT-FLOAT-64R2-NEXT:    sdc1 $f25, 40($sp) # 8-byte Folded Spill577; SOFT-FLOAT-64R2-NEXT:    sdc1 $f24, 32($sp) # 8-byte Folded Spill578; SOFT-FLOAT-64R2-NEXT:    sd $ra, 24($sp) # 8-byte Folded Spill579; SOFT-FLOAT-64R2-NEXT:    sd $16, 16($sp) # 8-byte Folded Spill580; SOFT-FLOAT-64R2-NEXT:    mov.s $f24, $f15581; SOFT-FLOAT-64R2-NEXT:    mov.s $f25, $f14582; SOFT-FLOAT-64R2-NEXT:    mov.s $f12, $f13583; SOFT-FLOAT-64R2-NEXT:    move $16, $4584; SOFT-FLOAT-64R2-NEXT:    daddiu $5, $sp, 4585; SOFT-FLOAT-64R2-NEXT:    jal sincosf586; SOFT-FLOAT-64R2-NEXT:    daddiu $6, $sp, 0587; SOFT-FLOAT-64R2-NEXT:    daddiu $5, $sp, 12588; SOFT-FLOAT-64R2-NEXT:    daddiu $6, $sp, 8589; SOFT-FLOAT-64R2-NEXT:    jal sincosf590; SOFT-FLOAT-64R2-NEXT:    mov.s $f12, $f25591; SOFT-FLOAT-64R2-NEXT:    daddiu $5, $16, 8592; SOFT-FLOAT-64R2-NEXT:    daddiu $6, $16, 24593; SOFT-FLOAT-64R2-NEXT:    jal sincosf594; SOFT-FLOAT-64R2-NEXT:    mov.s $f12, $f24595; SOFT-FLOAT-64R2-NEXT:    lwc1 $f0, 0($sp)596; SOFT-FLOAT-64R2-NEXT:    mfc1 $1, $f0597; SOFT-FLOAT-64R2-NEXT:    dsll $1, $1, 32598; SOFT-FLOAT-64R2-NEXT:    lwc1 $f0, 8($sp)599; SOFT-FLOAT-64R2-NEXT:    mfc1 $2, $f0600; SOFT-FLOAT-64R2-NEXT:    dext $2, $2, 0, 32601; SOFT-FLOAT-64R2-NEXT:    or $1, $2, $1602; SOFT-FLOAT-64R2-NEXT:    lwc1 $f0, 4($sp)603; SOFT-FLOAT-64R2-NEXT:    mfc1 $2, $f0604; SOFT-FLOAT-64R2-NEXT:    sd $1, 16($16)605; SOFT-FLOAT-64R2-NEXT:    dsll $1, $2, 32606; SOFT-FLOAT-64R2-NEXT:    lwc1 $f0, 12($sp)607; SOFT-FLOAT-64R2-NEXT:    mfc1 $2, $f0608; SOFT-FLOAT-64R2-NEXT:    dext $2, $2, 0, 32609; SOFT-FLOAT-64R2-NEXT:    or $1, $2, $1610; SOFT-FLOAT-64R2-NEXT:    sd $1, 0($16)611; SOFT-FLOAT-64R2-NEXT:    ld $16, 16($sp) # 8-byte Folded Reload612; SOFT-FLOAT-64R2-NEXT:    ld $ra, 24($sp) # 8-byte Folded Reload613; SOFT-FLOAT-64R2-NEXT:    ldc1 $f24, 32($sp) # 8-byte Folded Reload614; SOFT-FLOAT-64R2-NEXT:    ldc1 $f25, 40($sp) # 8-byte Folded Reload615; SOFT-FLOAT-64R2-NEXT:    jr $ra616; SOFT-FLOAT-64R2-NEXT:    daddiu $sp, $sp, 48617  %result = call { <3 x float>, <3 x float> } @llvm.sincos.v3f32(<3 x float> %a)618  ret { <3 x float>, <3 x float> } %result619}620 621define { double, double } @test_sincos_f64(double %a) #0 {622; MIPSEL-LABEL: test_sincos_f64:623; MIPSEL:       # %bb.0:624; MIPSEL-NEXT:    addiu $sp, $sp, -40625; MIPSEL-NEXT:    sw $ra, 36($sp) # 4-byte Folded Spill626; MIPSEL-NEXT:    addiu $6, $sp, 24627; MIPSEL-NEXT:    jal sincos628; MIPSEL-NEXT:    addiu $7, $sp, 16629; MIPSEL-NEXT:    ldc1 $f0, 24($sp)630; MIPSEL-NEXT:    ldc1 $f2, 16($sp)631; MIPSEL-NEXT:    lw $ra, 36($sp) # 4-byte Folded Reload632; MIPSEL-NEXT:    jr $ra633; MIPSEL-NEXT:    addiu $sp, $sp, 40634;635; SOFT-FLOAT-32-LABEL: test_sincos_f64:636; SOFT-FLOAT-32:       # %bb.0:637; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, -40638; SOFT-FLOAT-32-NEXT:    sw $ra, 36($sp) # 4-byte Folded Spill639; SOFT-FLOAT-32-NEXT:    addiu $6, $sp, 24640; SOFT-FLOAT-32-NEXT:    jal sincos641; SOFT-FLOAT-32-NEXT:    addiu $7, $sp, 16642; SOFT-FLOAT-32-NEXT:    ldc1 $f0, 24($sp)643; SOFT-FLOAT-32-NEXT:    ldc1 $f2, 16($sp)644; SOFT-FLOAT-32-NEXT:    lw $ra, 36($sp) # 4-byte Folded Reload645; SOFT-FLOAT-32-NEXT:    jr $ra646; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, 40647;648; SOFT-FLOAT-64-LABEL: test_sincos_f64:649; SOFT-FLOAT-64:       # %bb.0:650; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, -32651; SOFT-FLOAT-64-NEXT:    sd $ra, 24($sp) # 8-byte Folded Spill652; SOFT-FLOAT-64-NEXT:    daddiu $5, $sp, 16653; SOFT-FLOAT-64-NEXT:    jal sincos654; SOFT-FLOAT-64-NEXT:    daddiu $6, $sp, 8655; SOFT-FLOAT-64-NEXT:    ldc1 $f0, 16($sp)656; SOFT-FLOAT-64-NEXT:    ldc1 $f2, 8($sp)657; SOFT-FLOAT-64-NEXT:    ld $ra, 24($sp) # 8-byte Folded Reload658; SOFT-FLOAT-64-NEXT:    jr $ra659; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, 32660  %result = call { double, double } @llvm.sincos.f64(double %a)661  ret { double, double } %result662}663 664define { <2 x double>, <2 x double> } @test_sincos_v2f64(<2 x double> %a) #0 {665; MIPSEL-LABEL: test_sincos_v2f64:666; MIPSEL:       # %bb.0:667; MIPSEL-NEXT:    addiu $sp, $sp, -40668; MIPSEL-NEXT:    sw $ra, 36($sp) # 4-byte Folded Spill669; MIPSEL-NEXT:    sw $16, 32($sp) # 4-byte Folded Spill670; MIPSEL-NEXT:    move $16, $4671; MIPSEL-NEXT:    lw $1, 56($sp)672; MIPSEL-NEXT:    lw $2, 60($sp)673; MIPSEL-NEXT:    sw $2, 28($sp)674; MIPSEL-NEXT:    sw $1, 24($sp)675; MIPSEL-NEXT:    sw $7, 20($sp)676; MIPSEL-NEXT:    sw $6, 16($sp)677; MIPSEL-NEXT:    addiu $6, $4, 8678; MIPSEL-NEXT:    addiu $7, $4, 24679; MIPSEL-NEXT:    jal sincos680; MIPSEL-NEXT:    ldc1 $f12, 24($sp)681; MIPSEL-NEXT:    addiu $7, $16, 16682; MIPSEL-NEXT:    ldc1 $f12, 16($sp)683; MIPSEL-NEXT:    jal sincos684; MIPSEL-NEXT:    move $6, $16685; MIPSEL-NEXT:    lw $16, 32($sp) # 4-byte Folded Reload686; MIPSEL-NEXT:    lw $ra, 36($sp) # 4-byte Folded Reload687; MIPSEL-NEXT:    jr $ra688; MIPSEL-NEXT:    addiu $sp, $sp, 40689;690; SOFT-FLOAT-32-LABEL: test_sincos_v2f64:691; SOFT-FLOAT-32:       # %bb.0:692; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, -40693; SOFT-FLOAT-32-NEXT:    sw $ra, 36($sp) # 4-byte Folded Spill694; SOFT-FLOAT-32-NEXT:    sw $16, 32($sp) # 4-byte Folded Spill695; SOFT-FLOAT-32-NEXT:    move $16, $4696; SOFT-FLOAT-32-NEXT:    lw $1, 56($sp)697; SOFT-FLOAT-32-NEXT:    lw $2, 60($sp)698; SOFT-FLOAT-32-NEXT:    sw $2, 28($sp)699; SOFT-FLOAT-32-NEXT:    sw $1, 24($sp)700; SOFT-FLOAT-32-NEXT:    sw $7, 20($sp)701; SOFT-FLOAT-32-NEXT:    sw $6, 16($sp)702; SOFT-FLOAT-32-NEXT:    addiu $6, $4, 8703; SOFT-FLOAT-32-NEXT:    addiu $7, $4, 24704; SOFT-FLOAT-32-NEXT:    jal sincos705; SOFT-FLOAT-32-NEXT:    ldc1 $f12, 24($sp)706; SOFT-FLOAT-32-NEXT:    addiu $7, $16, 16707; SOFT-FLOAT-32-NEXT:    ldc1 $f12, 16($sp)708; SOFT-FLOAT-32-NEXT:    jal sincos709; SOFT-FLOAT-32-NEXT:    move $6, $16710; SOFT-FLOAT-32-NEXT:    lw $16, 32($sp) # 4-byte Folded Reload711; SOFT-FLOAT-32-NEXT:    lw $ra, 36($sp) # 4-byte Folded Reload712; SOFT-FLOAT-32-NEXT:    jr $ra713; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, 40714;715; SOFT-FLOAT-64-LABEL: test_sincos_v2f64:716; SOFT-FLOAT-64:       # %bb.0:717; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, -32718; SOFT-FLOAT-64-NEXT:    sd $ra, 24($sp) # 8-byte Folded Spill719; SOFT-FLOAT-64-NEXT:    sd $17, 16($sp) # 8-byte Folded Spill720; SOFT-FLOAT-64-NEXT:    sd $16, 8($sp) # 8-byte Folded Spill721; SOFT-FLOAT-64-NEXT:    move $16, $5722; SOFT-FLOAT-64-NEXT:    move $17, $4723; SOFT-FLOAT-64-NEXT:    dmtc1 $6, $f12724; SOFT-FLOAT-64-NEXT:    daddiu $5, $4, 8725; SOFT-FLOAT-64-NEXT:    jal sincos726; SOFT-FLOAT-64-NEXT:    daddiu $6, $4, 24727; SOFT-FLOAT-64-NEXT:    dmtc1 $16, $f12728; SOFT-FLOAT-64-NEXT:    daddiu $6, $17, 16729; SOFT-FLOAT-64-NEXT:    jal sincos730; SOFT-FLOAT-64-NEXT:    move $5, $17731; SOFT-FLOAT-64-NEXT:    ld $16, 8($sp) # 8-byte Folded Reload732; SOFT-FLOAT-64-NEXT:    ld $17, 16($sp) # 8-byte Folded Reload733; SOFT-FLOAT-64-NEXT:    ld $ra, 24($sp) # 8-byte Folded Reload734; SOFT-FLOAT-64-NEXT:    jr $ra735; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, 32736; SOFT-FLOAT-32R2-LABEL: test_sincos_v2f64:737; SOFT-FLOAT-32R2:       # %bb.0:738; SOFT-FLOAT-32R2-NEXT:    addiu $sp, $sp, -32739; SOFT-FLOAT-32R2-NEXT:    sw $ra, 28($sp) # 4-byte Folded Spill740; SOFT-FLOAT-32R2-NEXT:    sw $18, 24($sp) # 4-byte Folded Spill741; SOFT-FLOAT-32R2-NEXT:    sw $17, 20($sp) # 4-byte Folded Spill742; SOFT-FLOAT-32R2-NEXT:    sw $16, 16($sp) # 4-byte Folded Spill743; SOFT-FLOAT-32R2-NEXT:    move $16, $7744; SOFT-FLOAT-32R2-NEXT:    move $17, $6745; SOFT-FLOAT-32R2-NEXT:    move $18, $4746; SOFT-FLOAT-32R2-NEXT:    lw $1, 48($sp)747; SOFT-FLOAT-32R2-NEXT:    lw $2, 52($sp)748; SOFT-FLOAT-32R2-NEXT:    mtc1 $2, $f12749; SOFT-FLOAT-32R2-NEXT:    mthc1 $1, $f12750; SOFT-FLOAT-32R2-NEXT:    addiu $6, $4, 8751; SOFT-FLOAT-32R2-NEXT:    jal sincos752; SOFT-FLOAT-32R2-NEXT:    addiu $7, $4, 24753; SOFT-FLOAT-32R2-NEXT:    mtc1 $16, $f12754; SOFT-FLOAT-32R2-NEXT:    mthc1 $17, $f12755; SOFT-FLOAT-32R2-NEXT:    addiu $7, $18, 16756; SOFT-FLOAT-32R2-NEXT:    jal sincos757; SOFT-FLOAT-32R2-NEXT:    move $6, $18758; SOFT-FLOAT-32R2-NEXT:    lw $16, 16($sp) # 4-byte Folded Reload759; SOFT-FLOAT-32R2-NEXT:    lw $17, 20($sp) # 4-byte Folded Reload760; SOFT-FLOAT-32R2-NEXT:    lw $18, 24($sp) # 4-byte Folded Reload761; SOFT-FLOAT-32R2-NEXT:    lw $ra, 28($sp) # 4-byte Folded Reload762; SOFT-FLOAT-32R2-NEXT:    jr $ra763; SOFT-FLOAT-32R2-NEXT:    addiu $sp, $sp, 32764  %result = call { <2 x double>, <2 x double> } @llvm.sincos.v2f64(<2 x double> %a)765  ret { <2 x double>, <2 x double> } %result766}767 768define { fp128, fp128 } @test_sincos_f128(fp128 %a) #0 {769; MIPSEL-LABEL: test_sincos_f128:770; MIPSEL:       # %bb.0:771; MIPSEL-NEXT:    addiu $sp, $sp, -64772; MIPSEL-NEXT:    sw $ra, 60($sp) # 4-byte Folded Spill773; MIPSEL-NEXT:    sw $16, 56($sp) # 4-byte Folded Spill774; MIPSEL-NEXT:    move $1, $7775; MIPSEL-NEXT:    move $16, $4776; MIPSEL-NEXT:    addiu $2, $sp, 24777; MIPSEL-NEXT:    sw $2, 20($sp)778; MIPSEL-NEXT:    addiu $2, $sp, 40779; MIPSEL-NEXT:    sw $2, 16($sp)780; MIPSEL-NEXT:    lw $7, 80($sp)781; MIPSEL-NEXT:    move $4, $5782; MIPSEL-NEXT:    move $5, $6783; MIPSEL-NEXT:    jal sincosl784; MIPSEL-NEXT:    move $6, $1785; MIPSEL-NEXT:    lw $1, 52($sp)786; MIPSEL-NEXT:    lw $2, 24($sp)787; MIPSEL-NEXT:    lw $3, 28($sp)788; MIPSEL-NEXT:    lw $4, 32($sp)789; MIPSEL-NEXT:    lw $5, 36($sp)790; MIPSEL-NEXT:    sw $5, 28($16)791; MIPSEL-NEXT:    sw $4, 24($16)792; MIPSEL-NEXT:    sw $3, 20($16)793; MIPSEL-NEXT:    sw $2, 16($16)794; MIPSEL-NEXT:    sw $1, 12($16)795; MIPSEL-NEXT:    lw $1, 48($sp)796; MIPSEL-NEXT:    sw $1, 8($16)797; MIPSEL-NEXT:    lw $1, 44($sp)798; MIPSEL-NEXT:    sw $1, 4($16)799; MIPSEL-NEXT:    lw $1, 40($sp)800; MIPSEL-NEXT:    sw $1, 0($16)801; MIPSEL-NEXT:    lw $16, 56($sp) # 4-byte Folded Reload802; MIPSEL-NEXT:    lw $ra, 60($sp) # 4-byte Folded Reload803; MIPSEL-NEXT:    jr $ra804; MIPSEL-NEXT:    addiu $sp, $sp, 64805;806; SOFT-FLOAT-32-LABEL: test_sincos_f128:807; SOFT-FLOAT-32:       # %bb.0:808; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, -64809; SOFT-FLOAT-32-NEXT:    sw $ra, 60($sp) # 4-byte Folded Spill810; SOFT-FLOAT-32-NEXT:    sw $16, 56($sp) # 4-byte Folded Spill811; SOFT-FLOAT-32-NEXT:    move $1, $7812; SOFT-FLOAT-32-NEXT:    move $16, $4813; SOFT-FLOAT-32-NEXT:    addiu $2, $sp, 24814; SOFT-FLOAT-32-NEXT:    sw $2, 20($sp)815; SOFT-FLOAT-32-NEXT:    addiu $2, $sp, 40816; SOFT-FLOAT-32-NEXT:    sw $2, 16($sp)817; SOFT-FLOAT-32-NEXT:    lw $7, 80($sp)818; SOFT-FLOAT-32-NEXT:    move $4, $5819; SOFT-FLOAT-32-NEXT:    move $5, $6820; SOFT-FLOAT-32-NEXT:    jal sincosl821; SOFT-FLOAT-32-NEXT:    move $6, $1822; SOFT-FLOAT-32-NEXT:    lw $1, 52($sp)823; SOFT-FLOAT-32-NEXT:    lw $2, 24($sp)824; SOFT-FLOAT-32-NEXT:    lw $3, 28($sp)825; SOFT-FLOAT-32-NEXT:    lw $4, 32($sp)826; SOFT-FLOAT-32-NEXT:    lw $5, 36($sp)827; SOFT-FLOAT-32-NEXT:    sw $5, 28($16)828; SOFT-FLOAT-32-NEXT:    sw $4, 24($16)829; SOFT-FLOAT-32-NEXT:    sw $3, 20($16)830; SOFT-FLOAT-32-NEXT:    sw $2, 16($16)831; SOFT-FLOAT-32-NEXT:    sw $1, 12($16)832; SOFT-FLOAT-32-NEXT:    lw $1, 48($sp)833; SOFT-FLOAT-32-NEXT:    sw $1, 8($16)834; SOFT-FLOAT-32-NEXT:    lw $1, 44($sp)835; SOFT-FLOAT-32-NEXT:    sw $1, 4($16)836; SOFT-FLOAT-32-NEXT:    lw $1, 40($sp)837; SOFT-FLOAT-32-NEXT:    sw $1, 0($16)838; SOFT-FLOAT-32-NEXT:    lw $16, 56($sp) # 4-byte Folded Reload839; SOFT-FLOAT-32-NEXT:    lw $ra, 60($sp) # 4-byte Folded Reload840; SOFT-FLOAT-32-NEXT:    jr $ra841; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, 64842;843; SOFT-FLOAT-64-LABEL: test_sincos_f128:844; SOFT-FLOAT-64:       # %bb.0:845; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, -48846; SOFT-FLOAT-64-NEXT:    sd $ra, 40($sp) # 8-byte Folded Spill847; SOFT-FLOAT-64-NEXT:    daddiu $6, $sp, 16848; SOFT-FLOAT-64-NEXT:    jal sincosl849; SOFT-FLOAT-64-NEXT:    daddiu $7, $sp, 0850; SOFT-FLOAT-64-NEXT:    ldc1 $f0, 16($sp)851; SOFT-FLOAT-64-NEXT:    ldc1 $f2, 24($sp)852; SOFT-FLOAT-64-NEXT:    ld $2, 0($sp)853; SOFT-FLOAT-64-NEXT:    ld $3, 8($sp)854; SOFT-FLOAT-64-NEXT:    ld $ra, 40($sp) # 8-byte Folded Reload855; SOFT-FLOAT-64-NEXT:    jr $ra856; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, 48857  %result = call { fp128, fp128 } @llvm.sincos.f128(fp128 %a)858  ret { fp128, fp128 } %result859}860 861define { <2 x fp128>, <2 x fp128> } @test_sincos_v2f128(<2 x fp128> %a) #0 {862; MIPSEL-LABEL: test_sincos_v2f128:863; MIPSEL:       # %bb.0:864; MIPSEL-NEXT:    addiu $sp, $sp, -96865; MIPSEL-NEXT:    sw $ra, 92($sp) # 4-byte Folded Spill866; MIPSEL-NEXT:    sw $16, 88($sp) # 4-byte Folded Spill867; MIPSEL-NEXT:    move $5, $7868; MIPSEL-NEXT:    move $1, $6869; MIPSEL-NEXT:    move $16, $4870; MIPSEL-NEXT:    addiu $2, $sp, 24871; MIPSEL-NEXT:    sw $2, 20($sp)872; MIPSEL-NEXT:    addiu $2, $sp, 40873; MIPSEL-NEXT:    sw $2, 16($sp)874; MIPSEL-NEXT:    lw $6, 112($sp)875; MIPSEL-NEXT:    lw $7, 116($sp)876; MIPSEL-NEXT:    jal sincosl877; MIPSEL-NEXT:    move $4, $1878; MIPSEL-NEXT:    addiu $1, $sp, 56879; MIPSEL-NEXT:    sw $1, 20($sp)880; MIPSEL-NEXT:    addiu $1, $sp, 72881; MIPSEL-NEXT:    sw $1, 16($sp)882; MIPSEL-NEXT:    lw $4, 120($sp)883; MIPSEL-NEXT:    lw $5, 124($sp)884; MIPSEL-NEXT:    lw $6, 128($sp)885; MIPSEL-NEXT:    lw $7, 132($sp)886; MIPSEL-NEXT:    jal sincosl887; MIPSEL-NEXT:    nop888; MIPSEL-NEXT:    lw $1, 36($sp)889; MIPSEL-NEXT:    lw $2, 56($sp)890; MIPSEL-NEXT:    lw $3, 60($sp)891; MIPSEL-NEXT:    lw $4, 64($sp)892; MIPSEL-NEXT:    lw $5, 52($sp)893; MIPSEL-NEXT:    lw $6, 72($sp)894; MIPSEL-NEXT:    lw $7, 76($sp)895; MIPSEL-NEXT:    lw $8, 80($sp)896; MIPSEL-NEXT:    lw $9, 84($sp)897; MIPSEL-NEXT:    lw $10, 24($sp)898; MIPSEL-NEXT:    lw $11, 28($sp)899; MIPSEL-NEXT:    lw $12, 32($sp)900; MIPSEL-NEXT:    lw $13, 68($sp)901; MIPSEL-NEXT:    sw $13, 60($16)902; MIPSEL-NEXT:    sw $4, 56($16)903; MIPSEL-NEXT:    sw $3, 52($16)904; MIPSEL-NEXT:    sw $2, 48($16)905; MIPSEL-NEXT:    sw $1, 44($16)906; MIPSEL-NEXT:    sw $12, 40($16)907; MIPSEL-NEXT:    sw $11, 36($16)908; MIPSEL-NEXT:    sw $10, 32($16)909; MIPSEL-NEXT:    sw $9, 28($16)910; MIPSEL-NEXT:    sw $8, 24($16)911; MIPSEL-NEXT:    sw $7, 20($16)912; MIPSEL-NEXT:    sw $6, 16($16)913; MIPSEL-NEXT:    sw $5, 12($16)914; MIPSEL-NEXT:    lw $1, 48($sp)915; MIPSEL-NEXT:    sw $1, 8($16)916; MIPSEL-NEXT:    lw $1, 44($sp)917; MIPSEL-NEXT:    sw $1, 4($16)918; MIPSEL-NEXT:    lw $1, 40($sp)919; MIPSEL-NEXT:    sw $1, 0($16)920; MIPSEL-NEXT:    lw $16, 88($sp) # 4-byte Folded Reload921; MIPSEL-NEXT:    lw $ra, 92($sp) # 4-byte Folded Reload922; MIPSEL-NEXT:    jr $ra923; MIPSEL-NEXT:    addiu $sp, $sp, 96924;925; SOFT-FLOAT-32-LABEL: test_sincos_v2f128:926; SOFT-FLOAT-32:       # %bb.0:927; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, -96928; SOFT-FLOAT-32-NEXT:    sw $ra, 92($sp) # 4-byte Folded Spill929; SOFT-FLOAT-32-NEXT:    sw $16, 88($sp) # 4-byte Folded Spill930; SOFT-FLOAT-32-NEXT:    move $5, $7931; SOFT-FLOAT-32-NEXT:    move $1, $6932; SOFT-FLOAT-32-NEXT:    move $16, $4933; SOFT-FLOAT-32-NEXT:    addiu $2, $sp, 24934; SOFT-FLOAT-32-NEXT:    sw $2, 20($sp)935; SOFT-FLOAT-32-NEXT:    addiu $2, $sp, 40936; SOFT-FLOAT-32-NEXT:    sw $2, 16($sp)937; SOFT-FLOAT-32-NEXT:    lw $6, 112($sp)938; SOFT-FLOAT-32-NEXT:    lw $7, 116($sp)939; SOFT-FLOAT-32-NEXT:    jal sincosl940; SOFT-FLOAT-32-NEXT:    move $4, $1941; SOFT-FLOAT-32-NEXT:    addiu $1, $sp, 56942; SOFT-FLOAT-32-NEXT:    sw $1, 20($sp)943; SOFT-FLOAT-32-NEXT:    addiu $1, $sp, 72944; SOFT-FLOAT-32-NEXT:    sw $1, 16($sp)945; SOFT-FLOAT-32-NEXT:    lw $4, 120($sp)946; SOFT-FLOAT-32-NEXT:    lw $5, 124($sp)947; SOFT-FLOAT-32-NEXT:    lw $6, 128($sp)948; SOFT-FLOAT-32-NEXT:    lw $7, 132($sp)949; SOFT-FLOAT-32-NEXT:    jal sincosl950; SOFT-FLOAT-32-NEXT:    nop951; SOFT-FLOAT-32-NEXT:    lw $1, 36($sp)952; SOFT-FLOAT-32-NEXT:    lw $2, 56($sp)953; SOFT-FLOAT-32-NEXT:    lw $3, 60($sp)954; SOFT-FLOAT-32-NEXT:    lw $4, 64($sp)955; SOFT-FLOAT-32-NEXT:    lw $5, 52($sp)956; SOFT-FLOAT-32-NEXT:    lw $6, 72($sp)957; SOFT-FLOAT-32-NEXT:    lw $7, 76($sp)958; SOFT-FLOAT-32-NEXT:    lw $8, 80($sp)959; SOFT-FLOAT-32-NEXT:    lw $9, 84($sp)960; SOFT-FLOAT-32-NEXT:    lw $10, 24($sp)961; SOFT-FLOAT-32-NEXT:    lw $11, 28($sp)962; SOFT-FLOAT-32-NEXT:    lw $12, 32($sp)963; SOFT-FLOAT-32-NEXT:    lw $13, 68($sp)964; SOFT-FLOAT-32-NEXT:    sw $13, 60($16)965; SOFT-FLOAT-32-NEXT:    sw $4, 56($16)966; SOFT-FLOAT-32-NEXT:    sw $3, 52($16)967; SOFT-FLOAT-32-NEXT:    sw $2, 48($16)968; SOFT-FLOAT-32-NEXT:    sw $1, 44($16)969; SOFT-FLOAT-32-NEXT:    sw $12, 40($16)970; SOFT-FLOAT-32-NEXT:    sw $11, 36($16)971; SOFT-FLOAT-32-NEXT:    sw $10, 32($16)972; SOFT-FLOAT-32-NEXT:    sw $9, 28($16)973; SOFT-FLOAT-32-NEXT:    sw $8, 24($16)974; SOFT-FLOAT-32-NEXT:    sw $7, 20($16)975; SOFT-FLOAT-32-NEXT:    sw $6, 16($16)976; SOFT-FLOAT-32-NEXT:    sw $5, 12($16)977; SOFT-FLOAT-32-NEXT:    lw $1, 48($sp)978; SOFT-FLOAT-32-NEXT:    sw $1, 8($16)979; SOFT-FLOAT-32-NEXT:    lw $1, 44($sp)980; SOFT-FLOAT-32-NEXT:    sw $1, 4($16)981; SOFT-FLOAT-32-NEXT:    lw $1, 40($sp)982; SOFT-FLOAT-32-NEXT:    sw $1, 0($16)983; SOFT-FLOAT-32-NEXT:    lw $16, 88($sp) # 4-byte Folded Reload984; SOFT-FLOAT-32-NEXT:    lw $ra, 92($sp) # 4-byte Folded Reload985; SOFT-FLOAT-32-NEXT:    jr $ra986; SOFT-FLOAT-32-NEXT:    addiu $sp, $sp, 96987;988; SOFT-FLOAT-64-LABEL: test_sincos_v2f128:989; SOFT-FLOAT-64:       # %bb.0:990; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, -96991; SOFT-FLOAT-64-NEXT:    sd $ra, 88($sp) # 8-byte Folded Spill992; SOFT-FLOAT-64-NEXT:    sd $18, 80($sp) # 8-byte Folded Spill993; SOFT-FLOAT-64-NEXT:    sd $17, 72($sp) # 8-byte Folded Spill994; SOFT-FLOAT-64-NEXT:    sd $16, 64($sp) # 8-byte Folded Spill995; SOFT-FLOAT-64-NEXT:    move $16, $6996; SOFT-FLOAT-64-NEXT:    move $17, $5997; SOFT-FLOAT-64-NEXT:    move $18, $4998; SOFT-FLOAT-64-NEXT:    dmtc1 $7, $f12999; SOFT-FLOAT-64-NEXT:    dmtc1 $8, $f131000; SOFT-FLOAT-64-NEXT:    daddiu $6, $sp, 481001; SOFT-FLOAT-64-NEXT:    jal sincosl1002; SOFT-FLOAT-64-NEXT:    daddiu $7, $sp, 321003; SOFT-FLOAT-64-NEXT:    dmtc1 $17, $f121004; SOFT-FLOAT-64-NEXT:    dmtc1 $16, $f131005; SOFT-FLOAT-64-NEXT:    daddiu $6, $sp, 161006; SOFT-FLOAT-64-NEXT:    jal sincosl1007; SOFT-FLOAT-64-NEXT:    daddiu $7, $sp, 01008; SOFT-FLOAT-64-NEXT:    ld $1, 56($sp)1009; SOFT-FLOAT-64-NEXT:    ld $2, 0($sp)1010; SOFT-FLOAT-64-NEXT:    ld $3, 8($sp)1011; SOFT-FLOAT-64-NEXT:    ld $4, 32($sp)1012; SOFT-FLOAT-64-NEXT:    ld $5, 40($sp)1013; SOFT-FLOAT-64-NEXT:    sd $5, 56($18)1014; SOFT-FLOAT-64-NEXT:    sd $4, 48($18)1015; SOFT-FLOAT-64-NEXT:    sd $3, 40($18)1016; SOFT-FLOAT-64-NEXT:    sd $2, 32($18)1017; SOFT-FLOAT-64-NEXT:    sd $1, 24($18)1018; SOFT-FLOAT-64-NEXT:    ld $1, 48($sp)1019; SOFT-FLOAT-64-NEXT:    sd $1, 16($18)1020; SOFT-FLOAT-64-NEXT:    ld $1, 24($sp)1021; SOFT-FLOAT-64-NEXT:    sd $1, 8($18)1022; SOFT-FLOAT-64-NEXT:    ld $1, 16($sp)1023; SOFT-FLOAT-64-NEXT:    sd $1, 0($18)1024; SOFT-FLOAT-64-NEXT:    ld $16, 64($sp) # 8-byte Folded Reload1025; SOFT-FLOAT-64-NEXT:    ld $17, 72($sp) # 8-byte Folded Reload1026; SOFT-FLOAT-64-NEXT:    ld $18, 80($sp) # 8-byte Folded Reload1027; SOFT-FLOAT-64-NEXT:    ld $ra, 88($sp) # 8-byte Folded Reload1028; SOFT-FLOAT-64-NEXT:    jr $ra1029; SOFT-FLOAT-64-NEXT:    daddiu $sp, $sp, 961030  %result = call { <2 x fp128>, <2 x fp128> } @llvm.sincos.v2f128(<2 x fp128> %a)1031  ret { <2 x fp128>, <2 x fp128> } %result1032}1033 1034attributes #0 = { nounwind }1035