brintos

brintos / llvm-project-archived public Read only

0
0
Text · 16.8 KiB · 9b02438 Raw
342 lines · plain
1; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py UTC_ARGS: --no_x86_scrub_sp --version 52; RUN: llc < %s -mtriple=i386-unknown-linux-gnu  | FileCheck -check-prefix=X86 %s3; RUN: llc < %s -mtriple=x86_64-unknown-linux-gnu  | FileCheck -check-prefix=X64 %s4; RUN: llc < %s -mtriple=x86_64-apple-macosx10.9.0 | FileCheck --check-prefix=MACOS-SINCOS-STRET %s5; RUN: llc < %s -mtriple=x86_64-apple-macosx10.8.0 | FileCheck --check-prefix=MACOS-NOSINCOS-STRET %s6 7define void @test_sincos_v4f32(<4 x float> %x, ptr noalias %out_sin, ptr noalias %out_cos) nounwind {8; X86-LABEL: test_sincos_v4f32:9; X86:       # %bb.0:10; X86-NEXT:    pushl %edi11; X86-NEXT:    pushl %esi12; X86-NEXT:    subl $52, %esp13; X86-NEXT:    movl 84(%esp), %esi14; X86-NEXT:    flds 76(%esp)15; X86-NEXT:    fstps {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill16; X86-NEXT:    flds 64(%esp)17; X86-NEXT:    fstps {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill18; X86-NEXT:    flds 72(%esp)19; X86-NEXT:    fstps {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Spill20; X86-NEXT:    flds 68(%esp)21; X86-NEXT:    movl 80(%esp), %edi22; X86-NEXT:    leal 40(%esp), %eax23; X86-NEXT:    movl %eax, 8(%esp)24; X86-NEXT:    leal 4(%edi), %eax25; X86-NEXT:    movl %eax, 4(%esp)26; X86-NEXT:    fstps (%esp)27; X86-NEXT:    calll sincosf28; X86-NEXT:    leal 44(%esp), %eax29; X86-NEXT:    movl %eax, 8(%esp)30; X86-NEXT:    leal 8(%edi), %eax31; X86-NEXT:    movl %eax, 4(%esp)32; X86-NEXT:    flds {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload33; X86-NEXT:    fstps (%esp)34; X86-NEXT:    calll sincosf35; X86-NEXT:    leal 36(%esp), %eax36; X86-NEXT:    movl %eax, 8(%esp)37; X86-NEXT:    movl %edi, 4(%esp)38; X86-NEXT:    flds {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload39; X86-NEXT:    fstps (%esp)40; X86-NEXT:    calll sincosf41; X86-NEXT:    leal 48(%esp), %eax42; X86-NEXT:    movl %eax, 8(%esp)43; X86-NEXT:    addl $12, %edi44; X86-NEXT:    movl %edi, 4(%esp)45; X86-NEXT:    flds {{[-0-9]+}}(%e{{[sb]}}p) # 4-byte Folded Reload46; X86-NEXT:    fstps (%esp)47; X86-NEXT:    calll sincosf48; X86-NEXT:    flds 36(%esp)49; X86-NEXT:    flds 40(%esp)50; X86-NEXT:    flds 44(%esp)51; X86-NEXT:    flds 48(%esp)52; X86-NEXT:    fstps 12(%esi)53; X86-NEXT:    fstps 8(%esi)54; X86-NEXT:    fstps 4(%esi)55; X86-NEXT:    fstps (%esi)56; X86-NEXT:    addl $52, %esp57; X86-NEXT:    popl %esi58; X86-NEXT:    popl %edi59; X86-NEXT:    retl60;61; X64-LABEL: test_sincos_v4f32:62; X64:       # %bb.0:63; X64-NEXT:    pushq %r1464; X64-NEXT:    pushq %rbx65; X64-NEXT:    subq $56, %rsp66; X64-NEXT:    movq %rsi, %rbx67; X64-NEXT:    movq %rdi, %r1468; X64-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill69; X64-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]70; X64-NEXT:    leaq 4(%rsp), %rdi71; X64-NEXT:    movq %rsp, %rsi72; X64-NEXT:    callq sincosf@PLT73; X64-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload74; X64-NEXT:    movhlps {{.*#+}} xmm0 = xmm0[1,1]75; X64-NEXT:    leaq 12(%rsp), %rdi76; X64-NEXT:    leaq 8(%rsp), %rsi77; X64-NEXT:    callq sincosf@PLT78; X64-NEXT:    leaq 28(%rsp), %rdi79; X64-NEXT:    leaq 24(%rsp), %rsi80; X64-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload81; X64-NEXT:    callq sincosf@PLT82; X64-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload83; X64-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1,1,1]84; X64-NEXT:    leaq 20(%rsp), %rdi85; X64-NEXT:    leaq 16(%rsp), %rsi86; X64-NEXT:    callq sincosf@PLT87; X64-NEXT:    movss {{.*#+}} xmm0 = mem[0],zero,zero,zero88; X64-NEXT:    movss {{.*#+}} xmm1 = mem[0],zero,zero,zero89; X64-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]90; X64-NEXT:    movss {{.*#+}} xmm0 = mem[0],zero,zero,zero91; X64-NEXT:    movss {{.*#+}} xmm2 = mem[0],zero,zero,zero92; X64-NEXT:    unpcklps {{.*#+}} xmm0 = xmm0[0],xmm2[0],xmm0[1],xmm2[1]93; X64-NEXT:    movlhps {{.*#+}} xmm0 = xmm0[0],xmm1[0]94; X64-NEXT:    movss {{.*#+}} xmm1 = mem[0],zero,zero,zero95; X64-NEXT:    movss {{.*#+}} xmm2 = mem[0],zero,zero,zero96; X64-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm1[0],xmm2[1],xmm1[1]97; X64-NEXT:    movss {{.*#+}} xmm1 = mem[0],zero,zero,zero98; X64-NEXT:    movss {{.*#+}} xmm3 = mem[0],zero,zero,zero99; X64-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm3[0],xmm1[1],xmm3[1]100; X64-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm2[0]101; X64-NEXT:    movups %xmm1, (%r14)102; X64-NEXT:    movups %xmm0, (%rbx)103; X64-NEXT:    addq $56, %rsp104; X64-NEXT:    popq %rbx105; X64-NEXT:    popq %r14106; X64-NEXT:    retq107;108; MACOS-SINCOS-STRET-LABEL: test_sincos_v4f32:109; MACOS-SINCOS-STRET:       ## %bb.0:110; MACOS-SINCOS-STRET-NEXT:    pushq %r14111; MACOS-SINCOS-STRET-NEXT:    pushq %rbx112; MACOS-SINCOS-STRET-NEXT:    subq $104, %rsp113; MACOS-SINCOS-STRET-NEXT:    movq %rsi, %rbx114; MACOS-SINCOS-STRET-NEXT:    movq %rdi, %r14115; MACOS-SINCOS-STRET-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill116; MACOS-SINCOS-STRET-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]117; MACOS-SINCOS-STRET-NEXT:    callq ___sincosf_stret118; MACOS-SINCOS-STRET-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill119; MACOS-SINCOS-STRET-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1,1,1]120; MACOS-SINCOS-STRET-NEXT:    movaps %xmm0, (%rsp) ## 16-byte Spill121; MACOS-SINCOS-STRET-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 ## 16-byte Reload122; MACOS-SINCOS-STRET-NEXT:    movhlps {{.*#+}} xmm0 = xmm0[1,1]123; MACOS-SINCOS-STRET-NEXT:    callq ___sincosf_stret124; MACOS-SINCOS-STRET-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill125; MACOS-SINCOS-STRET-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1,1,1]126; MACOS-SINCOS-STRET-NEXT:    unpcklps (%rsp), %xmm0 ## 16-byte Folded Reload127; MACOS-SINCOS-STRET-NEXT:    ## xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]128; MACOS-SINCOS-STRET-NEXT:    movaps %xmm0, (%rsp) ## 16-byte Spill129; MACOS-SINCOS-STRET-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 ## 16-byte Reload130; MACOS-SINCOS-STRET-NEXT:    callq ___sincosf_stret131; MACOS-SINCOS-STRET-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill132; MACOS-SINCOS-STRET-NEXT:    movaps %xmm0, %xmm1133; MACOS-SINCOS-STRET-NEXT:    shufps {{.*#+}} xmm1 = xmm1[1,1],xmm0[1,1]134; MACOS-SINCOS-STRET-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill135; MACOS-SINCOS-STRET-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 ## 16-byte Reload136; MACOS-SINCOS-STRET-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1,1,1]137; MACOS-SINCOS-STRET-NEXT:    callq ___sincosf_stret138; MACOS-SINCOS-STRET-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 ## 16-byte Reload139; MACOS-SINCOS-STRET-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]140; MACOS-SINCOS-STRET-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1,1,1]141; MACOS-SINCOS-STRET-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 ## 16-byte Reload142; MACOS-SINCOS-STRET-NEXT:    unpcklps {{.*#+}} xmm2 = xmm2[0],xmm0[0],xmm2[1],xmm0[1]143; MACOS-SINCOS-STRET-NEXT:    unpcklpd (%rsp), %xmm2 ## 16-byte Folded Reload144; MACOS-SINCOS-STRET-NEXT:    ## xmm2 = xmm2[0],mem[0]145; MACOS-SINCOS-STRET-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 ## 16-byte Reload146; MACOS-SINCOS-STRET-NEXT:    unpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 ## 16-byte Folded Reload147; MACOS-SINCOS-STRET-NEXT:    ## xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]148; MACOS-SINCOS-STRET-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]149; MACOS-SINCOS-STRET-NEXT:    movups %xmm1, (%r14)150; MACOS-SINCOS-STRET-NEXT:    movups %xmm2, (%rbx)151; MACOS-SINCOS-STRET-NEXT:    addq $104, %rsp152; MACOS-SINCOS-STRET-NEXT:    popq %rbx153; MACOS-SINCOS-STRET-NEXT:    popq %r14154; MACOS-SINCOS-STRET-NEXT:    retq155;156; MACOS-NOSINCOS-STRET-LABEL: test_sincos_v4f32:157; MACOS-NOSINCOS-STRET:       ## %bb.0:158; MACOS-NOSINCOS-STRET-NEXT:    pushq %r14159; MACOS-NOSINCOS-STRET-NEXT:    pushq %rbx160; MACOS-NOSINCOS-STRET-NEXT:    subq $104, %rsp161; MACOS-NOSINCOS-STRET-NEXT:    movq %rsi, %rbx162; MACOS-NOSINCOS-STRET-NEXT:    movq %rdi, %r14163; MACOS-NOSINCOS-STRET-NEXT:    movaps %xmm0, (%rsp) ## 16-byte Spill164; MACOS-NOSINCOS-STRET-NEXT:    shufps {{.*#+}} xmm0 = xmm0[3,3,3,3]165; MACOS-NOSINCOS-STRET-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill166; MACOS-NOSINCOS-STRET-NEXT:    callq _cosf167; MACOS-NOSINCOS-STRET-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill168; MACOS-NOSINCOS-STRET-NEXT:    movaps (%rsp), %xmm0 ## 16-byte Reload169; MACOS-NOSINCOS-STRET-NEXT:    movhlps {{.*#+}} xmm0 = xmm0[1,1]170; MACOS-NOSINCOS-STRET-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill171; MACOS-NOSINCOS-STRET-NEXT:    callq _cosf172; MACOS-NOSINCOS-STRET-NEXT:    unpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 ## 16-byte Folded Reload173; MACOS-NOSINCOS-STRET-NEXT:    ## xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]174; MACOS-NOSINCOS-STRET-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill175; MACOS-NOSINCOS-STRET-NEXT:    movaps (%rsp), %xmm0 ## 16-byte Reload176; MACOS-NOSINCOS-STRET-NEXT:    callq _cosf177; MACOS-NOSINCOS-STRET-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill178; MACOS-NOSINCOS-STRET-NEXT:    movaps (%rsp), %xmm0 ## 16-byte Reload179; MACOS-NOSINCOS-STRET-NEXT:    shufps {{.*#+}} xmm0 = xmm0[1,1,1,1]180; MACOS-NOSINCOS-STRET-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill181; MACOS-NOSINCOS-STRET-NEXT:    callq _cosf182; MACOS-NOSINCOS-STRET-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 ## 16-byte Reload183; MACOS-NOSINCOS-STRET-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]184; MACOS-NOSINCOS-STRET-NEXT:    unpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 ## 16-byte Folded Reload185; MACOS-NOSINCOS-STRET-NEXT:    ## xmm1 = xmm1[0],mem[0]186; MACOS-NOSINCOS-STRET-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill187; MACOS-NOSINCOS-STRET-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 ## 16-byte Reload188; MACOS-NOSINCOS-STRET-NEXT:    callq _sinf189; MACOS-NOSINCOS-STRET-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill190; MACOS-NOSINCOS-STRET-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 ## 16-byte Reload191; MACOS-NOSINCOS-STRET-NEXT:    callq _sinf192; MACOS-NOSINCOS-STRET-NEXT:    unpcklps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 ## 16-byte Folded Reload193; MACOS-NOSINCOS-STRET-NEXT:    ## xmm0 = xmm0[0],mem[0],xmm0[1],mem[1]194; MACOS-NOSINCOS-STRET-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill195; MACOS-NOSINCOS-STRET-NEXT:    movaps (%rsp), %xmm0 ## 16-byte Reload196; MACOS-NOSINCOS-STRET-NEXT:    callq _sinf197; MACOS-NOSINCOS-STRET-NEXT:    movaps %xmm0, (%rsp) ## 16-byte Spill198; MACOS-NOSINCOS-STRET-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 ## 16-byte Reload199; MACOS-NOSINCOS-STRET-NEXT:    callq _sinf200; MACOS-NOSINCOS-STRET-NEXT:    movaps (%rsp), %xmm1 ## 16-byte Reload201; MACOS-NOSINCOS-STRET-NEXT:    unpcklps {{.*#+}} xmm1 = xmm1[0],xmm0[0],xmm1[1],xmm0[1]202; MACOS-NOSINCOS-STRET-NEXT:    unpcklpd {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 ## 16-byte Folded Reload203; MACOS-NOSINCOS-STRET-NEXT:    ## xmm1 = xmm1[0],mem[0]204; MACOS-NOSINCOS-STRET-NEXT:    movups %xmm1, (%r14)205; MACOS-NOSINCOS-STRET-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 ## 16-byte Reload206; MACOS-NOSINCOS-STRET-NEXT:    movups %xmm0, (%rbx)207; MACOS-NOSINCOS-STRET-NEXT:    addq $104, %rsp208; MACOS-NOSINCOS-STRET-NEXT:    popq %rbx209; MACOS-NOSINCOS-STRET-NEXT:    popq %r14210; MACOS-NOSINCOS-STRET-NEXT:    retq211  %result = call { <4 x float>, <4 x float> } @llvm.sincos.v4f32(<4 x float> %x)212  %result.0 = extractvalue { <4 x float>, <4 x float> } %result, 0213  %result.1 = extractvalue { <4 x float>, <4 x float> } %result, 1214  store <4 x float> %result.0, ptr %out_sin, align 4215  store <4 x float> %result.1, ptr %out_cos, align 4216  ret void217}218 219define void @test_sincos_v2f64(<2 x double> %x, ptr noalias %out_sin, ptr noalias %out_cos) nounwind {220; X86-LABEL: test_sincos_v2f64:221; X86:       # %bb.0:222; X86-NEXT:    pushl %edi223; X86-NEXT:    pushl %esi224; X86-NEXT:    subl $52, %esp225; X86-NEXT:    movl 84(%esp), %esi226; X86-NEXT:    fldl 72(%esp)227; X86-NEXT:    fstpl {{[-0-9]+}}(%e{{[sb]}}p) # 8-byte Folded Spill228; X86-NEXT:    fldl 64(%esp)229; X86-NEXT:    movl 80(%esp), %edi230; X86-NEXT:    leal 24(%esp), %eax231; X86-NEXT:    movl %eax, 12(%esp)232; X86-NEXT:    movl %edi, 8(%esp)233; X86-NEXT:    fstpl (%esp)234; X86-NEXT:    calll sincos235; X86-NEXT:    leal 32(%esp), %eax236; X86-NEXT:    movl %eax, 12(%esp)237; X86-NEXT:    addl $8, %edi238; X86-NEXT:    movl %edi, 8(%esp)239; X86-NEXT:    fldl {{[-0-9]+}}(%e{{[sb]}}p) # 8-byte Folded Reload240; X86-NEXT:    fstpl (%esp)241; X86-NEXT:    calll sincos242; X86-NEXT:    fldl 24(%esp)243; X86-NEXT:    fldl 32(%esp)244; X86-NEXT:    fstpl 8(%esi)245; X86-NEXT:    fstpl (%esi)246; X86-NEXT:    addl $52, %esp247; X86-NEXT:    popl %esi248; X86-NEXT:    popl %edi249; X86-NEXT:    retl250;251; X64-LABEL: test_sincos_v2f64:252; X64:       # %bb.0:253; X64-NEXT:    pushq %r14254; X64-NEXT:    pushq %rbx255; X64-NEXT:    subq $56, %rsp256; X64-NEXT:    movq %rsi, %rbx257; X64-NEXT:    movq %rdi, %r14258; X64-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) # 16-byte Spill259; X64-NEXT:    leaq 24(%rsp), %rdi260; X64-NEXT:    leaq 16(%rsp), %rsi261; X64-NEXT:    callq sincos@PLT262; X64-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 # 16-byte Reload263; X64-NEXT:    movhlps {{.*#+}} xmm0 = xmm0[1,1]264; X64-NEXT:    leaq 8(%rsp), %rdi265; X64-NEXT:    movq %rsp, %rsi266; X64-NEXT:    callq sincos@PLT267; X64-NEXT:    movsd {{.*#+}} xmm0 = mem[0],zero268; X64-NEXT:    movhps {{.*#+}} xmm0 = xmm0[0,1],mem[0,1]269; X64-NEXT:    movsd {{.*#+}} xmm1 = mem[0],zero270; X64-NEXT:    movhps {{.*#+}} xmm1 = xmm1[0,1],mem[0,1]271; X64-NEXT:    movups %xmm1, (%r14)272; X64-NEXT:    movups %xmm0, (%rbx)273; X64-NEXT:    addq $56, %rsp274; X64-NEXT:    popq %rbx275; X64-NEXT:    popq %r14276; X64-NEXT:    retq277;278; MACOS-SINCOS-STRET-LABEL: test_sincos_v2f64:279; MACOS-SINCOS-STRET:       ## %bb.0:280; MACOS-SINCOS-STRET-NEXT:    pushq %r14281; MACOS-SINCOS-STRET-NEXT:    pushq %rbx282; MACOS-SINCOS-STRET-NEXT:    subq $56, %rsp283; MACOS-SINCOS-STRET-NEXT:    movq %rsi, %rbx284; MACOS-SINCOS-STRET-NEXT:    movq %rdi, %r14285; MACOS-SINCOS-STRET-NEXT:    movaps %xmm0, (%rsp) ## 16-byte Spill286; MACOS-SINCOS-STRET-NEXT:    callq ___sincos_stret287; MACOS-SINCOS-STRET-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill288; MACOS-SINCOS-STRET-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill289; MACOS-SINCOS-STRET-NEXT:    movaps (%rsp), %xmm0 ## 16-byte Reload290; MACOS-SINCOS-STRET-NEXT:    movhlps {{.*#+}} xmm0 = xmm0[1,1]291; MACOS-SINCOS-STRET-NEXT:    callq ___sincos_stret292; MACOS-SINCOS-STRET-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm2 ## 16-byte Reload293; MACOS-SINCOS-STRET-NEXT:    movlhps {{.*#+}} xmm2 = xmm2[0],xmm1[0]294; MACOS-SINCOS-STRET-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 ## 16-byte Reload295; MACOS-SINCOS-STRET-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]296; MACOS-SINCOS-STRET-NEXT:    movups %xmm1, (%r14)297; MACOS-SINCOS-STRET-NEXT:    movups %xmm2, (%rbx)298; MACOS-SINCOS-STRET-NEXT:    addq $56, %rsp299; MACOS-SINCOS-STRET-NEXT:    popq %rbx300; MACOS-SINCOS-STRET-NEXT:    popq %r14301; MACOS-SINCOS-STRET-NEXT:    retq302;303; MACOS-NOSINCOS-STRET-LABEL: test_sincos_v2f64:304; MACOS-NOSINCOS-STRET:       ## %bb.0:305; MACOS-NOSINCOS-STRET-NEXT:    pushq %r14306; MACOS-NOSINCOS-STRET-NEXT:    pushq %rbx307; MACOS-NOSINCOS-STRET-NEXT:    subq $56, %rsp308; MACOS-NOSINCOS-STRET-NEXT:    movq %rsi, %rbx309; MACOS-NOSINCOS-STRET-NEXT:    movq %rdi, %r14310; MACOS-NOSINCOS-STRET-NEXT:    movaps %xmm0, (%rsp) ## 16-byte Spill311; MACOS-NOSINCOS-STRET-NEXT:    callq _cos312; MACOS-NOSINCOS-STRET-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill313; MACOS-NOSINCOS-STRET-NEXT:    movaps (%rsp), %xmm0 ## 16-byte Reload314; MACOS-NOSINCOS-STRET-NEXT:    movhlps {{.*#+}} xmm0 = xmm0[1,1]315; MACOS-NOSINCOS-STRET-NEXT:    movaps %xmm0, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill316; MACOS-NOSINCOS-STRET-NEXT:    callq _cos317; MACOS-NOSINCOS-STRET-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm1 ## 16-byte Reload318; MACOS-NOSINCOS-STRET-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]319; MACOS-NOSINCOS-STRET-NEXT:    movaps %xmm1, {{[-0-9]+}}(%r{{[sb]}}p) ## 16-byte Spill320; MACOS-NOSINCOS-STRET-NEXT:    movaps (%rsp), %xmm0 ## 16-byte Reload321; MACOS-NOSINCOS-STRET-NEXT:    callq _sin322; MACOS-NOSINCOS-STRET-NEXT:    movaps %xmm0, (%rsp) ## 16-byte Spill323; MACOS-NOSINCOS-STRET-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 ## 16-byte Reload324; MACOS-NOSINCOS-STRET-NEXT:    callq _sin325; MACOS-NOSINCOS-STRET-NEXT:    movaps (%rsp), %xmm1 ## 16-byte Reload326; MACOS-NOSINCOS-STRET-NEXT:    movlhps {{.*#+}} xmm1 = xmm1[0],xmm0[0]327; MACOS-NOSINCOS-STRET-NEXT:    movups %xmm1, (%r14)328; MACOS-NOSINCOS-STRET-NEXT:    movaps {{[-0-9]+}}(%r{{[sb]}}p), %xmm0 ## 16-byte Reload329; MACOS-NOSINCOS-STRET-NEXT:    movups %xmm0, (%rbx)330; MACOS-NOSINCOS-STRET-NEXT:    addq $56, %rsp331; MACOS-NOSINCOS-STRET-NEXT:    popq %rbx332; MACOS-NOSINCOS-STRET-NEXT:    popq %r14333; MACOS-NOSINCOS-STRET-NEXT:    retq334  %result = call { <2 x double>, <2 x double> } @llvm.sincos.v2f64(<2 x double> %x)335  %result.0 = extractvalue { <2 x double>, <2 x double> } %result, 0336  %result.1 = extractvalue { <2 x double>, <2 x double> } %result, 1337  store <2 x double> %result.0, ptr %out_sin, align 8338  store <2 x double> %result.1, ptr %out_cos, align 8339  ret void340}341 342