@@ -77,14 +77,13 @@ define void @fadd_64r(double* %loc, double %val) nounwind {
77
77
; X86-NOSSE-NEXT: pushl %ebx
78
78
; X86-NOSSE-NEXT: pushl %esi
79
79
; X86-NOSSE-NEXT: andl $-8, %esp
80
- ; X86-NOSSE-NEXT: subl $16 , %esp
80
+ ; X86-NOSSE-NEXT: subl $24 , %esp
81
81
; X86-NOSSE-NEXT: movl 8(%ebp), %esi
82
- ; X86-NOSSE-NEXT: xorl %eax, %eax
83
- ; X86-NOSSE-NEXT: xorl %edx, %edx
84
- ; X86-NOSSE-NEXT: xorl %ecx, %ecx
85
- ; X86-NOSSE-NEXT: xorl %ebx, %ebx
86
- ; X86-NOSSE-NEXT: lock cmpxchg8b (%esi)
87
- ; X86-NOSSE-NEXT: movl %edx, {{[0-9]+}}(%esp)
82
+ ; X86-NOSSE-NEXT: fildll (%esi)
83
+ ; X86-NOSSE-NEXT: fistpll {{[0-9]+}}(%esp)
84
+ ; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %eax
85
+ ; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %ecx
86
+ ; X86-NOSSE-NEXT: movl %ecx, {{[0-9]+}}(%esp)
88
87
; X86-NOSSE-NEXT: movl %eax, {{[0-9]+}}(%esp)
89
88
; X86-NOSSE-NEXT: fldl {{[0-9]+}}(%esp)
90
89
; X86-NOSSE-NEXT: faddl 12(%ebp)
@@ -112,14 +111,13 @@ define void @fadd_64r(double* %loc, double %val) nounwind {
112
111
; X86-SSE1-NEXT: pushl %ebx
113
112
; X86-SSE1-NEXT: pushl %esi
114
113
; X86-SSE1-NEXT: andl $-8, %esp
115
- ; X86-SSE1-NEXT: subl $16 , %esp
114
+ ; X86-SSE1-NEXT: subl $24 , %esp
116
115
; X86-SSE1-NEXT: movl 8(%ebp), %esi
117
- ; X86-SSE1-NEXT: xorl %eax, %eax
118
- ; X86-SSE1-NEXT: xorl %edx, %edx
119
- ; X86-SSE1-NEXT: xorl %ecx, %ecx
120
- ; X86-SSE1-NEXT: xorl %ebx, %ebx
121
- ; X86-SSE1-NEXT: lock cmpxchg8b (%esi)
122
- ; X86-SSE1-NEXT: movl %edx, {{[0-9]+}}(%esp)
116
+ ; X86-SSE1-NEXT: fildll (%esi)
117
+ ; X86-SSE1-NEXT: fistpll {{[0-9]+}}(%esp)
118
+ ; X86-SSE1-NEXT: movl {{[0-9]+}}(%esp), %eax
119
+ ; X86-SSE1-NEXT: movl {{[0-9]+}}(%esp), %ecx
120
+ ; X86-SSE1-NEXT: movl %ecx, {{[0-9]+}}(%esp)
123
121
; X86-SSE1-NEXT: movl %eax, {{[0-9]+}}(%esp)
124
122
; X86-SSE1-NEXT: fldl {{[0-9]+}}(%esp)
125
123
; X86-SSE1-NEXT: faddl 12(%ebp)
@@ -283,13 +281,12 @@ define void @fadd_64g() nounwind {
283
281
; X86-NOSSE-NEXT: movl %esp, %ebp
284
282
; X86-NOSSE-NEXT: pushl %ebx
285
283
; X86-NOSSE-NEXT: andl $-8, %esp
286
- ; X86-NOSSE-NEXT: subl $24, %esp
287
- ; X86-NOSSE-NEXT: xorl %eax, %eax
288
- ; X86-NOSSE-NEXT: xorl %edx, %edx
289
- ; X86-NOSSE-NEXT: xorl %ecx, %ecx
290
- ; X86-NOSSE-NEXT: xorl %ebx, %ebx
291
- ; X86-NOSSE-NEXT: lock cmpxchg8b glob64
292
- ; X86-NOSSE-NEXT: movl %edx, {{[0-9]+}}(%esp)
284
+ ; X86-NOSSE-NEXT: subl $32, %esp
285
+ ; X86-NOSSE-NEXT: fildll glob64
286
+ ; X86-NOSSE-NEXT: fistpll {{[0-9]+}}(%esp)
287
+ ; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %eax
288
+ ; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %ecx
289
+ ; X86-NOSSE-NEXT: movl %ecx, {{[0-9]+}}(%esp)
293
290
; X86-NOSSE-NEXT: movl %eax, {{[0-9]+}}(%esp)
294
291
; X86-NOSSE-NEXT: fld1
295
292
; X86-NOSSE-NEXT: faddl {{[0-9]+}}(%esp)
@@ -315,13 +312,12 @@ define void @fadd_64g() nounwind {
315
312
; X86-SSE1-NEXT: movl %esp, %ebp
316
313
; X86-SSE1-NEXT: pushl %ebx
317
314
; X86-SSE1-NEXT: andl $-8, %esp
318
- ; X86-SSE1-NEXT: subl $24, %esp
319
- ; X86-SSE1-NEXT: xorl %eax, %eax
320
- ; X86-SSE1-NEXT: xorl %edx, %edx
321
- ; X86-SSE1-NEXT: xorl %ecx, %ecx
322
- ; X86-SSE1-NEXT: xorl %ebx, %ebx
323
- ; X86-SSE1-NEXT: lock cmpxchg8b glob64
324
- ; X86-SSE1-NEXT: movl %edx, {{[0-9]+}}(%esp)
315
+ ; X86-SSE1-NEXT: subl $32, %esp
316
+ ; X86-SSE1-NEXT: fildll glob64
317
+ ; X86-SSE1-NEXT: fistpll {{[0-9]+}}(%esp)
318
+ ; X86-SSE1-NEXT: movl {{[0-9]+}}(%esp), %eax
319
+ ; X86-SSE1-NEXT: movl {{[0-9]+}}(%esp), %ecx
320
+ ; X86-SSE1-NEXT: movl %ecx, {{[0-9]+}}(%esp)
325
321
; X86-SSE1-NEXT: movl %eax, {{[0-9]+}}(%esp)
326
322
; X86-SSE1-NEXT: fld1
327
323
; X86-SSE1-NEXT: faddl {{[0-9]+}}(%esp)
@@ -484,13 +480,12 @@ define void @fadd_64imm() nounwind {
484
480
; X86-NOSSE-NEXT: movl %esp, %ebp
485
481
; X86-NOSSE-NEXT: pushl %ebx
486
482
; X86-NOSSE-NEXT: andl $-8, %esp
487
- ; X86-NOSSE-NEXT: subl $24, %esp
488
- ; X86-NOSSE-NEXT: xorl %eax, %eax
489
- ; X86-NOSSE-NEXT: xorl %edx, %edx
490
- ; X86-NOSSE-NEXT: xorl %ecx, %ecx
491
- ; X86-NOSSE-NEXT: xorl %ebx, %ebx
492
- ; X86-NOSSE-NEXT: lock cmpxchg8b -559038737
493
- ; X86-NOSSE-NEXT: movl %edx, {{[0-9]+}}(%esp)
483
+ ; X86-NOSSE-NEXT: subl $32, %esp
484
+ ; X86-NOSSE-NEXT: fildll -559038737
485
+ ; X86-NOSSE-NEXT: fistpll {{[0-9]+}}(%esp)
486
+ ; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %eax
487
+ ; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %ecx
488
+ ; X86-NOSSE-NEXT: movl %ecx, {{[0-9]+}}(%esp)
494
489
; X86-NOSSE-NEXT: movl %eax, {{[0-9]+}}(%esp)
495
490
; X86-NOSSE-NEXT: fld1
496
491
; X86-NOSSE-NEXT: faddl {{[0-9]+}}(%esp)
@@ -516,13 +511,12 @@ define void @fadd_64imm() nounwind {
516
511
; X86-SSE1-NEXT: movl %esp, %ebp
517
512
; X86-SSE1-NEXT: pushl %ebx
518
513
; X86-SSE1-NEXT: andl $-8, %esp
519
- ; X86-SSE1-NEXT: subl $24, %esp
520
- ; X86-SSE1-NEXT: xorl %eax, %eax
521
- ; X86-SSE1-NEXT: xorl %edx, %edx
522
- ; X86-SSE1-NEXT: xorl %ecx, %ecx
523
- ; X86-SSE1-NEXT: xorl %ebx, %ebx
524
- ; X86-SSE1-NEXT: lock cmpxchg8b -559038737
525
- ; X86-SSE1-NEXT: movl %edx, {{[0-9]+}}(%esp)
514
+ ; X86-SSE1-NEXT: subl $32, %esp
515
+ ; X86-SSE1-NEXT: fildll -559038737
516
+ ; X86-SSE1-NEXT: fistpll {{[0-9]+}}(%esp)
517
+ ; X86-SSE1-NEXT: movl {{[0-9]+}}(%esp), %eax
518
+ ; X86-SSE1-NEXT: movl {{[0-9]+}}(%esp), %ecx
519
+ ; X86-SSE1-NEXT: movl %ecx, {{[0-9]+}}(%esp)
526
520
; X86-SSE1-NEXT: movl %eax, {{[0-9]+}}(%esp)
527
521
; X86-SSE1-NEXT: fld1
528
522
; X86-SSE1-NEXT: faddl {{[0-9]+}}(%esp)
@@ -691,13 +685,12 @@ define void @fadd_64stack() nounwind {
691
685
; X86-NOSSE-NEXT: movl %esp, %ebp
692
686
; X86-NOSSE-NEXT: pushl %ebx
693
687
; X86-NOSSE-NEXT: andl $-8, %esp
694
- ; X86-NOSSE-NEXT: subl $32, %esp
695
- ; X86-NOSSE-NEXT: xorl %eax, %eax
696
- ; X86-NOSSE-NEXT: xorl %edx, %edx
697
- ; X86-NOSSE-NEXT: xorl %ecx, %ecx
698
- ; X86-NOSSE-NEXT: xorl %ebx, %ebx
699
- ; X86-NOSSE-NEXT: lock cmpxchg8b (%esp)
700
- ; X86-NOSSE-NEXT: movl %edx, {{[0-9]+}}(%esp)
688
+ ; X86-NOSSE-NEXT: subl $40, %esp
689
+ ; X86-NOSSE-NEXT: fildll (%esp)
690
+ ; X86-NOSSE-NEXT: fistpll {{[0-9]+}}(%esp)
691
+ ; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %eax
692
+ ; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %ecx
693
+ ; X86-NOSSE-NEXT: movl %ecx, {{[0-9]+}}(%esp)
701
694
; X86-NOSSE-NEXT: movl %eax, {{[0-9]+}}(%esp)
702
695
; X86-NOSSE-NEXT: fld1
703
696
; X86-NOSSE-NEXT: faddl {{[0-9]+}}(%esp)
@@ -723,13 +716,12 @@ define void @fadd_64stack() nounwind {
723
716
; X86-SSE1-NEXT: movl %esp, %ebp
724
717
; X86-SSE1-NEXT: pushl %ebx
725
718
; X86-SSE1-NEXT: andl $-8, %esp
726
- ; X86-SSE1-NEXT: subl $32, %esp
727
- ; X86-SSE1-NEXT: xorl %eax, %eax
728
- ; X86-SSE1-NEXT: xorl %edx, %edx
729
- ; X86-SSE1-NEXT: xorl %ecx, %ecx
730
- ; X86-SSE1-NEXT: xorl %ebx, %ebx
731
- ; X86-SSE1-NEXT: lock cmpxchg8b (%esp)
732
- ; X86-SSE1-NEXT: movl %edx, {{[0-9]+}}(%esp)
719
+ ; X86-SSE1-NEXT: subl $40, %esp
720
+ ; X86-SSE1-NEXT: fildll (%esp)
721
+ ; X86-SSE1-NEXT: fistpll {{[0-9]+}}(%esp)
722
+ ; X86-SSE1-NEXT: movl {{[0-9]+}}(%esp), %eax
723
+ ; X86-SSE1-NEXT: movl {{[0-9]+}}(%esp), %ecx
724
+ ; X86-SSE1-NEXT: movl %ecx, {{[0-9]+}}(%esp)
733
725
; X86-SSE1-NEXT: movl %eax, {{[0-9]+}}(%esp)
734
726
; X86-SSE1-NEXT: fld1
735
727
; X86-SSE1-NEXT: faddl {{[0-9]+}}(%esp)
@@ -831,15 +823,14 @@ define void @fadd_array(i64* %arg, double %arg1, i64 %arg2) nounwind {
831
823
; X86-NOSSE-NEXT: pushl %edi
832
824
; X86-NOSSE-NEXT: pushl %esi
833
825
; X86-NOSSE-NEXT: andl $-8, %esp
834
- ; X86-NOSSE-NEXT: subl $24 , %esp
826
+ ; X86-NOSSE-NEXT: subl $32 , %esp
835
827
; X86-NOSSE-NEXT: movl 20(%ebp), %esi
836
828
; X86-NOSSE-NEXT: movl 8(%ebp), %edi
837
- ; X86-NOSSE-NEXT: xorl %eax, %eax
838
- ; X86-NOSSE-NEXT: xorl %edx, %edx
839
- ; X86-NOSSE-NEXT: xorl %ecx, %ecx
840
- ; X86-NOSSE-NEXT: xorl %ebx, %ebx
841
- ; X86-NOSSE-NEXT: lock cmpxchg8b (%edi,%esi,8)
842
- ; X86-NOSSE-NEXT: movl %edx, {{[0-9]+}}(%esp)
829
+ ; X86-NOSSE-NEXT: fildll (%edi,%esi,8)
830
+ ; X86-NOSSE-NEXT: fistpll {{[0-9]+}}(%esp)
831
+ ; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %eax
832
+ ; X86-NOSSE-NEXT: movl {{[0-9]+}}(%esp), %ecx
833
+ ; X86-NOSSE-NEXT: movl %ecx, {{[0-9]+}}(%esp)
843
834
; X86-NOSSE-NEXT: movl %eax, {{[0-9]+}}(%esp)
844
835
; X86-NOSSE-NEXT: fldl {{[0-9]+}}(%esp)
845
836
; X86-NOSSE-NEXT: faddl 12(%ebp)
@@ -869,15 +860,14 @@ define void @fadd_array(i64* %arg, double %arg1, i64 %arg2) nounwind {
869
860
; X86-SSE1-NEXT: pushl %edi
870
861
; X86-SSE1-NEXT: pushl %esi
871
862
; X86-SSE1-NEXT: andl $-8, %esp
872
- ; X86-SSE1-NEXT: subl $24 , %esp
863
+ ; X86-SSE1-NEXT: subl $32 , %esp
873
864
; X86-SSE1-NEXT: movl 20(%ebp), %esi
874
865
; X86-SSE1-NEXT: movl 8(%ebp), %edi
875
- ; X86-SSE1-NEXT: xorl %eax, %eax
876
- ; X86-SSE1-NEXT: xorl %edx, %edx
877
- ; X86-SSE1-NEXT: xorl %ecx, %ecx
878
- ; X86-SSE1-NEXT: xorl %ebx, %ebx
879
- ; X86-SSE1-NEXT: lock cmpxchg8b (%edi,%esi,8)
880
- ; X86-SSE1-NEXT: movl %edx, {{[0-9]+}}(%esp)
866
+ ; X86-SSE1-NEXT: fildll (%edi,%esi,8)
867
+ ; X86-SSE1-NEXT: fistpll {{[0-9]+}}(%esp)
868
+ ; X86-SSE1-NEXT: movl {{[0-9]+}}(%esp), %eax
869
+ ; X86-SSE1-NEXT: movl {{[0-9]+}}(%esp), %ecx
870
+ ; X86-SSE1-NEXT: movl %ecx, {{[0-9]+}}(%esp)
881
871
; X86-SSE1-NEXT: movl %eax, {{[0-9]+}}(%esp)
882
872
; X86-SSE1-NEXT: fldl {{[0-9]+}}(%esp)
883
873
; X86-SSE1-NEXT: faddl 12(%ebp)
0 commit comments