@@ -510,22 +510,22 @@ define void @extract_f64_1(double* nocapture %dst, <2 x double> %foo) nounwind {
510510}
511511
512512define void @extract_f128_0 (fp128 * nocapture %dst , <2 x fp128 > %foo ) nounwind {
513- ; X32-LABEL: extract_f128_0:
514- ; X32: # BB#0:
515- ; X32-NEXT: pushl %edi
516- ; X32-NEXT: pushl %esi
517- ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
518- ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
519- ; X32-NEXT: movl {{[0-9]+}}(%esp), %edx
520- ; X32-NEXT: movl {{[0-9]+}}(%esp), %esi
521- ; X32-NEXT: movl {{[0-9]+}}(%esp), %edi
522- ; X32-NEXT: movl %esi, 12(%edi)
523- ; X32-NEXT: movl %edx, 8(%edi)
524- ; X32-NEXT: movl %ecx, 4(%edi)
525- ; X32-NEXT: movl %eax, (%edi)
526- ; X32-NEXT: popl %esi
527- ; X32-NEXT: popl %edi
528- ; X32-NEXT: retl
513+ ; SSE- X32-LABEL: extract_f128_0:
514+ ; SSE- X32: # BB#0:
515+ ; SSE- X32-NEXT: pushl %edi
516+ ; SSE- X32-NEXT: pushl %esi
517+ ; SSE- X32-NEXT: movl {{[0-9]+}}(%esp), %eax
518+ ; SSE- X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
519+ ; SSE- X32-NEXT: movl {{[0-9]+}}(%esp), %edx
520+ ; SSE- X32-NEXT: movl {{[0-9]+}}(%esp), %esi
521+ ; SSE- X32-NEXT: movl {{[0-9]+}}(%esp), %edi
522+ ; SSE- X32-NEXT: movl %esi, 12(%edi)
523+ ; SSE- X32-NEXT: movl %edx, 8(%edi)
524+ ; SSE- X32-NEXT: movl %ecx, 4(%edi)
525+ ; SSE- X32-NEXT: movl %eax, (%edi)
526+ ; SSE- X32-NEXT: popl %esi
527+ ; SSE- X32-NEXT: popl %edi
528+ ; SSE- X32-NEXT: retl
529529;
530530; SSE2-X64-LABEL: extract_f128_0:
531531; SSE2-X64: # BB#0:
@@ -539,6 +539,13 @@ define void @extract_f128_0(fp128* nocapture %dst, <2 x fp128> %foo) nounwind {
539539; SSE41-X64-NEXT: movq %rsi, (%rdi)
540540; SSE41-X64-NEXT: retq
541541;
542+ ; AVX-X32-LABEL: extract_f128_0:
543+ ; AVX-X32: # BB#0:
544+ ; AVX-X32-NEXT: vmovups {{[0-9]+}}(%esp), %xmm0
545+ ; AVX-X32-NEXT: movl {{[0-9]+}}(%esp), %eax
546+ ; AVX-X32-NEXT: vmovups %xmm0, (%eax)
547+ ; AVX-X32-NEXT: retl
548+ ;
542549; AVX-X64-LABEL: extract_f128_0:
543550; AVX-X64: # BB#0:
544551; AVX-X64-NEXT: movq %rdx, 8(%rdi)
@@ -555,22 +562,22 @@ define void @extract_f128_0(fp128* nocapture %dst, <2 x fp128> %foo) nounwind {
555562}
556563
557564define void @extract_f128_1 (fp128 * nocapture %dst , <2 x fp128 > %foo ) nounwind {
558- ; X32-LABEL: extract_f128_1:
559- ; X32: # BB#0:
560- ; X32-NEXT: pushl %edi
561- ; X32-NEXT: pushl %esi
562- ; X32-NEXT: movl {{[0-9]+}}(%esp), %eax
563- ; X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
564- ; X32-NEXT: movl {{[0-9]+}}(%esp), %edx
565- ; X32-NEXT: movl {{[0-9]+}}(%esp), %esi
566- ; X32-NEXT: movl {{[0-9]+}}(%esp), %edi
567- ; X32-NEXT: movl %esi, 12(%edi)
568- ; X32-NEXT: movl %edx, 8(%edi)
569- ; X32-NEXT: movl %ecx, 4(%edi)
570- ; X32-NEXT: movl %eax, (%edi)
571- ; X32-NEXT: popl %esi
572- ; X32-NEXT: popl %edi
573- ; X32-NEXT: retl
565+ ; SSE- X32-LABEL: extract_f128_1:
566+ ; SSE- X32: # BB#0:
567+ ; SSE- X32-NEXT: pushl %edi
568+ ; SSE- X32-NEXT: pushl %esi
569+ ; SSE- X32-NEXT: movl {{[0-9]+}}(%esp), %eax
570+ ; SSE- X32-NEXT: movl {{[0-9]+}}(%esp), %ecx
571+ ; SSE- X32-NEXT: movl {{[0-9]+}}(%esp), %edx
572+ ; SSE- X32-NEXT: movl {{[0-9]+}}(%esp), %esi
573+ ; SSE- X32-NEXT: movl {{[0-9]+}}(%esp), %edi
574+ ; SSE- X32-NEXT: movl %esi, 12(%edi)
575+ ; SSE- X32-NEXT: movl %edx, 8(%edi)
576+ ; SSE- X32-NEXT: movl %ecx, 4(%edi)
577+ ; SSE- X32-NEXT: movl %eax, (%edi)
578+ ; SSE- X32-NEXT: popl %esi
579+ ; SSE- X32-NEXT: popl %edi
580+ ; SSE- X32-NEXT: retl
574581;
575582; SSE2-X64-LABEL: extract_f128_1:
576583; SSE2-X64: # BB#0:
@@ -584,6 +591,13 @@ define void @extract_f128_1(fp128* nocapture %dst, <2 x fp128> %foo) nounwind {
584591; SSE41-X64-NEXT: movq %rcx, (%rdi)
585592; SSE41-X64-NEXT: retq
586593;
594+ ; AVX-X32-LABEL: extract_f128_1:
595+ ; AVX-X32: # BB#0:
596+ ; AVX-X32-NEXT: vmovups {{[0-9]+}}(%esp), %xmm0
597+ ; AVX-X32-NEXT: movl {{[0-9]+}}(%esp), %eax
598+ ; AVX-X32-NEXT: vmovups %xmm0, (%eax)
599+ ; AVX-X32-NEXT: retl
600+ ;
587601; AVX-X64-LABEL: extract_f128_1:
588602; AVX-X64: # BB#0:
589603; AVX-X64-NEXT: movq %r8, 8(%rdi)
0 commit comments