llvm.org GIT mirror llvm / 61fc8d6
Use function attributes to indicate that we don't want to realign the stack. Function attributes are the future! So just query whether we want to realign the stack directly from the function instead of through a random target options structure. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@187618 91177308-0d34-0410-b5e6-96231b3b80d8 Bill Wendling 6 years ago
15 changed file(s) with 713 addition(s) and 52 deletion(s). Raw diff Collapse all Expand all
180180 cl::desc("Override default stack alignment"),
181181 cl::init(0));
182182
183 cl::opt
184 EnableRealignStack("realign-stack",
185 cl::desc("Realign stack if needed"),
186 cl::init(true));
187
188183 cl::opt
189184 TrapFuncName("trap-func", cl::Hidden,
190185 cl::desc("Emit a call to trap function rather than a trap instruction"),
4747 UseSoftFloat(false), NoZerosInBSS(false),
4848 JITEmitDebugInfo(false), JITEmitDebugInfoToDisk(false),
4949 GuaranteedTailCallOpt(false), DisableTailCalls(false),
50 StackAlignmentOverride(0), RealignStack(true),
50 StackAlignmentOverride(0),
5151 EnableFastISel(false), PositionIndependentExecutable(false),
5252 EnableSegmentedStacks(false), UseInitArray(false), TrapFuncName(""),
5353 FloatABIType(FloatABI::Default), AllowFPOpFusion(FPOpFusion::Standard)
139139
140140 /// StackAlignmentOverride - Override default stack alignment for target.
141141 unsigned StackAlignmentOverride;
142
143 /// RealignStack - This flag indicates whether the stack should be
144 /// automatically realigned, if needed.
145 unsigned RealignStack : 1;
146142
147143 /// EnableFastISel - This flag enables fast-path instruction selection
148144 /// which trades away generated code quality in favor of reducing
212208 ARE_EQUAL(GuaranteedTailCallOpt) &&
213209 ARE_EQUAL(DisableTailCalls) &&
214210 ARE_EQUAL(StackAlignmentOverride) &&
215 ARE_EQUAL(RealignStack) &&
216211 ARE_EQUAL(EnableFastISel) &&
217212 ARE_EQUAL(PositionIndependentExecutable) &&
218213 ARE_EQUAL(EnableSegmentedStacks) &&
5959 RegInfo = 0;
6060
6161 MFInfo = 0;
62 FrameInfo = new (Allocator) MachineFrameInfo(TM, TM.Options.RealignStack);
62 FrameInfo =
63 new (Allocator) MachineFrameInfo(TM,!F->hasFnAttribute("no-realign-stack"));
6364
6465 if (Fn->getAttributes().hasAttribute(AttributeSet::FunctionIndex,
6566 Attribute::StackAlignment))
322322 // 1. Dynamic stack realignment is explicitly disabled,
323323 // 2. This is a Thumb1 function (it's not useful, so we don't bother), or
324324 // 3. There are VLAs in the function and the base pointer is disabled.
325 if (!MF.getTarget().Options.RealignStack)
325 if (MF.getFunction()->hasFnAttribute("no-realign-stack"))
326326 return false;
327327 if (AFI->isThumb1OnlyFunction())
328328 return false;
716716 }
717717
718718 bool PPCRegisterInfo::canRealignStack(const MachineFunction &MF) const {
719 if (!MF.getTarget().Options.RealignStack)
719 if (MF.getFunction()->hasFnAttribute("no-realign-stack"))
720720 return false;
721721
722722 return true;
410410 }
411411
412412 bool X86RegisterInfo::canRealignStack(const MachineFunction &MF) const {
413 if (MF.getFunction()->hasFnAttribute("no-realign-stack"))
414 return false;
415
413416 const MachineFrameInfo *MFI = MF.getFrameInfo();
414417 const MachineRegisterInfo *MRI = &MF.getRegInfo();
415 if (!MF.getTarget().Options.RealignStack)
416 return false;
417418
418419 // Stack realignment requires a frame pointer. If we already started
419420 // register allocation with frame pointer elimination, it is too late now.
None ; RUN: llc < %s -mtriple=armv7-apple-ios -O0 -realign-stack=0 | FileCheck %s -check-prefix=NO-REALIGN
1 ; RUN: llc < %s -mtriple=armv7-apple-ios -O0 | FileCheck %s
0 ; RUN: llc < %s -mtriple=armv7-apple-ios -O0 | FileCheck %s -check-prefix=NO-REALIGN
1 ; RUN: llc < %s -mtriple=armv7-apple-ios -O0 | FileCheck %s -check-prefix=REALIGN
22
33 ; rdar://12713765
44 ; When realign-stack is set to false, make sure we are not creating stack
55 ; objects that are assumed to be 64-byte aligned.
66 @T3_retval = common global <16 x float> zeroinitializer, align 16
77
8 define void @test(<16 x float>* noalias sret %agg.result) nounwind ssp {
8 define void @test1(<16 x float>* noalias sret %agg.result) nounwind ssp "no-realign-stack" {
99 entry:
10 ; CHECK: test
11 ; CHECK: bic sp, sp, #63
12 ; CHECK: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
13 ; CHECK: vst1.64
14 ; CHECK: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
15 ; CHECK: vst1.64
16 ; CHECK: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #16
17 ; CHECK: vst1.64
18 ; CHECK: vst1.64
19 ; CHECK: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
20 ; CHECK: vst1.64
21 ; CHECK: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
22 ; CHECK: vst1.64
23 ; CHECK: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #16
24 ; CHECK: vst1.64
25 ; CHECK: vst1.64
26 ; NO-REALIGN: test
10 ; NO-REALIGN: test1
2711 ; NO-REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
2812 ; NO-REALIGN: vst1.64
2913 ; NO-REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
4529 store <16 x float> %1, <16 x float>* %agg.result, align 16
4630 ret void
4731 }
32
33 define void @test2(<16 x float>* noalias sret %agg.result) nounwind ssp {
34 entry:
35 ; REALIGN: test2
36 ; REALIGN: bic sp, sp, #63
37 ; REALIGN: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
38 ; REALIGN: vst1.64
39 ; REALIGN: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
40 ; REALIGN: vst1.64
41 ; REALIGN: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #16
42 ; REALIGN: vst1.64
43 ; REALIGN: vst1.64
44 ; REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
45 ; REALIGN: vst1.64
46 ; REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
47 ; REALIGN: vst1.64
48 ; REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #16
49 ; REALIGN: vst1.64
50 ; REALIGN: vst1.64
51 %retval = alloca <16 x float>, align 16
52 %0 = load <16 x float>* @T3_retval, align 16
53 store <16 x float> %0, <16 x float>* %retval
54 %1 = load <16 x float>* %retval
55 store <16 x float> %1, <16 x float>* %agg.result, align 16
56 ret void
57 }
0 ; REQUIRES: asserts
1 ; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -mcpu=penryn -mattr=+sse2 -stats -realign-stack=0 2>&1 | \
1 ; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -mcpu=penryn -mattr=+sse2 -stats 2>&1 | \
22 ; RUN: grep "asm-printer" | grep 35
33
44 target datalayout = "e-p:32:32"
None ; RUN: llc < %s -mtriple=i686-pc-linux -realign-stack=1 -mattr=sse2 | grep movups | count 33
1 ; RUN: llc < %s -mtriple=i686-pc-linux -realign-stack=0 -mattr=sse2 | grep movups | count 33
0 ; RUN: llc < %s -mtriple=i686-pc-linux -mattr=sse2 | FileCheck %s
21 ; PR2539
32 ; PR8969 - make 32-bit linux have a 16-byte aligned stack
43 ; Verify that movups is still generated with an aligned stack for the globals
3938
4039 declare void @abort()
4140
42 define void @""() {
41 define void @test1() {
42 ; CHECK: test1
43 ; CHECK: movups
44 ; CHECK: movups
45 ; CHECK: movups
46 ; CHECK: movups
47 ; CHECK: movups
48 ; CHECK: movups
49 ; CHECK: movups
50 ; CHECK: movups
51 ; CHECK: movups
52 ; CHECK: movups
53 ; CHECK: movups
54 ; CHECK: movups
55 ; CHECK: movups
56 ; CHECK: movups
57 ; CHECK: movups
58 ; CHECK: movups
59 ; CHECK: movups
60 ; CHECK: movups
61 ; CHECK: movups
62 ; CHECK: movups
63 ; CHECK: movups
64 ; CHECK: movups
65 ; CHECK: movups
66 ; CHECK: movups
67 ; CHECK: movups
68 ; CHECK: movups
69 ; CHECK: movups
70 ; CHECK: movups
71 ; CHECK: movups
72 ; CHECK: movups
73 ; CHECK: movups
74 ; CHECK: movups
75 ; CHECK: movups
76 ; CHECK-NOT: movups
4377 load <4 x float>* @0, align 1 ; <<4 x float>>:1 [#uses=2]
4478 load <4 x float>* @1, align 1 ; <<4 x float>>:2 [#uses=3]
4579 load <4 x float>* @2, align 1 ; <<4 x float>>:3 [#uses=4]
636670 store <4 x float> %593, <4 x float>* @0, align 1
637671 ret void
638672 }
673
674 define void @test2() "no-realign-stack" {
675 ; CHECK: test2
676 ; CHECK: movups
677 ; CHECK: movups
678 ; CHECK: movups
679 ; CHECK: movups
680 ; CHECK: movups
681 ; CHECK: movups
682 ; CHECK: movups
683 ; CHECK: movups
684 ; CHECK: movups
685 ; CHECK: movups
686 ; CHECK: movups
687 ; CHECK: movups
688 ; CHECK: movups
689 ; CHECK: movups
690 ; CHECK: movups
691 ; CHECK: movups
692 ; CHECK: movups
693 ; CHECK: movups
694 ; CHECK: movups
695 ; CHECK: movups
696 ; CHECK: movups
697 ; CHECK: movups
698 ; CHECK: movups
699 ; CHECK: movups
700 ; CHECK: movups
701 ; CHECK: movups
702 ; CHECK: movups
703 ; CHECK: movups
704 ; CHECK: movups
705 ; CHECK: movups
706 ; CHECK: movups
707 ; CHECK: movups
708 ; CHECK: movups
709 ; CHECK-NOT: movups
710 load <4 x float>* @0, align 1
711 load <4 x float>* @1, align 1
712 load <4 x float>* @2, align 1
713 load <4 x float>* @3, align 1
714 load <4 x float>* @4, align 1
715 load <4 x float>* @5, align 1
716 load <4 x float>* @6, align 1
717 load <4 x float>* @7, align 1
718 load <4 x float>* @8, align 1
719 load <4 x float>* @9, align 1
720 load <4 x float>* @10, align 1
721 load <4 x float>* @11, align 1
722 load <4 x float>* @12, align 1
723 load <4 x float>* @13, align 1
724 load <4 x float>* @14, align 1
725 load <4 x float>* @15, align 1
726 load <4 x float>* @16, align 1
727 load <4 x float>* @17, align 1
728 load <4 x float>* @18, align 1
729 load <4 x float>* @19, align 1
730 load <4 x float>* @20, align 1
731 load <4 x float>* @21, align 1
732 load <4 x float>* @22, align 1
733 load <4 x float>* @23, align 1
734 load <4 x float>* @24, align 1
735 load <4 x float>* @25, align 1
736 load <4 x float>* @26, align 1
737 load <4 x float>* @27, align 1
738 load <4 x float>* @28, align 1
739 load <4 x float>* @29, align 1
740 load <4 x float>* @30, align 1
741 load <4 x float>* @31, align 1
742 fmul <4 x float> %1, %1
743 fmul <4 x float> %33, %2
744 fmul <4 x float> %34, %3
745 fmul <4 x float> %35, %4
746 fmul <4 x float> %36, %5
747 fmul <4 x float> %37, %6
748 fmul <4 x float> %38, %7
749 fmul <4 x float> %39, %8
750 fmul <4 x float> %40, %9
751 fmul <4 x float> %41, %10
752 fmul <4 x float> %42, %11 ; <<4 x float>>:43 [#uses=1]
753 fmul <4 x float> %43, %12 ; <<4 x float>>:44 [#uses=1]
754 fmul <4 x float> %44, %13 ; <<4 x float>>:45 [#uses=1]
755 fmul <4 x float> %45, %14 ; <<4 x float>>:46 [#uses=1]
756 fmul <4 x float> %46, %15 ; <<4 x float>>:47 [#uses=1]
757 fmul <4 x float> %47, %16 ; <<4 x float>>:48 [#uses=1]
758 fmul <4 x float> %48, %17 ; <<4 x float>>:49 [#uses=1]
759 fmul <4 x float> %49, %18 ; <<4 x float>>:50 [#uses=1]
760 fmul <4 x float> %50, %19 ; <<4 x float>>:51 [#uses=1]
761 fmul <4 x float> %51, %20 ; <<4 x float>>:52 [#uses=1]
762 fmul <4 x float> %52, %21 ; <<4 x float>>:53 [#uses=1]
763 fmul <4 x float> %53, %22 ; <<4 x float>>:54 [#uses=1]
764 fmul <4 x float> %54, %23 ; <<4 x float>>:55 [#uses=1]
765 fmul <4 x float> %55, %24 ; <<4 x float>>:56 [#uses=1]
766 fmul <4 x float> %56, %25 ; <<4 x float>>:57 [#uses=1]
767 fmul <4 x float> %57, %26 ; <<4 x float>>:58 [#uses=1]
768 fmul <4 x float> %58, %27 ; <<4 x float>>:59 [#uses=1]
769 fmul <4 x float> %59, %28 ; <<4 x float>>:60 [#uses=1]
770 fmul <4 x float> %60, %29 ; <<4 x float>>:61 [#uses=1]
771 fmul <4 x float> %61, %30 ; <<4 x float>>:62 [#uses=1]
772 fmul <4 x float> %62, %31 ; <<4 x float>>:63 [#uses=1]
773 fmul <4 x float> %63, %32 ; <<4 x float>>:64 [#uses=3]
774 fmul <4 x float> %2, %2 ; <<4 x float>>:65 [#uses=1]
775 fmul <4 x float> %65, %3 ; <<4 x float>>:66 [#uses=1]
776 fmul <4 x float> %66, %4 ; <<4 x float>>:67 [#uses=1]
777 fmul <4 x float> %67, %5 ; <<4 x float>>:68 [#uses=1]
778 fmul <4 x float> %68, %6 ; <<4 x float>>:69 [#uses=1]
779 fmul <4 x float> %69, %7 ; <<4 x float>>:70 [#uses=1]
780 fmul <4 x float> %70, %8 ; <<4 x float>>:71 [#uses=1]
781 fmul <4 x float> %71, %9 ; <<4 x float>>:72 [#uses=1]
782 fmul <4 x float> %72, %10 ; <<4 x float>>:73 [#uses=1]
783 fmul <4 x float> %73, %11 ; <<4 x float>>:74 [#uses=1]
784 fmul <4 x float> %74, %12 ; <<4 x float>>:75 [#uses=1]
785 fmul <4 x float> %75, %13 ; <<4 x float>>:76 [#uses=1]
786 fmul <4 x float> %76, %14 ; <<4 x float>>:77 [#uses=1]
787 fmul <4 x float> %77, %15 ; <<4 x float>>:78 [#uses=1]
788 fmul <4 x float> %78, %16 ; <<4 x float>>:79 [#uses=1]
789 fmul <4 x float> %79, %17 ; <<4 x float>>:80 [#uses=1]
790 fmul <4 x float> %80, %18 ; <<4 x float>>:81 [#uses=1]
791 fmul <4 x float> %81, %19 ; <<4 x float>>:82 [#uses=1]
792 fmul <4 x float> %82, %20 ; <<4 x float>>:83 [#uses=1]
793 fmul <4 x float> %83, %21 ; <<4 x float>>:84 [#uses=1]
794 fmul <4 x float> %84, %22 ; <<4 x float>>:85 [#uses=1]
795 fmul <4 x float> %85, %23 ; <<4 x float>>:86 [#uses=1]
796 fmul <4 x float> %86, %24 ; <<4 x float>>:87 [#uses=1]
797 fmul <4 x float> %87, %25 ; <<4 x float>>:88 [#uses=1]
798 fmul <4 x float> %88, %26 ; <<4 x float>>:89 [#uses=1]
799 fmul <4 x float> %89, %27 ; <<4 x float>>:90 [#uses=1]
800 fmul <4 x float> %90, %28 ; <<4 x float>>:91 [#uses=1]
801 fmul <4 x float> %91, %29 ; <<4 x float>>:92 [#uses=1]
802 fmul <4 x float> %92, %30 ; <<4 x float>>:93 [#uses=1]
803 fmul <4 x float> %93, %31 ; <<4 x float>>:94 [#uses=1]
804 fmul <4 x float> %94, %32 ; <<4 x float>>:95 [#uses=1]
805 fmul <4 x float> %3, %3 ; <<4 x float>>:96 [#uses=1]
806 fmul <4 x float> %96, %4 ; <<4 x float>>:97 [#uses=1]
807 fmul <4 x float> %97, %5 ; <<4 x float>>:98 [#uses=1]
808 fmul <4 x float> %98, %6 ; <<4 x float>>:99 [#uses=1]
809 fmul <4 x float> %99, %7 ; <<4 x float>>:100 [#uses=1]
810 fmul <4 x float> %100, %8 ; <<4 x float>>:101 [#uses=1]
811 fmul <4 x float> %101, %9 ; <<4 x float>>:102 [#uses=1]
812 fmul <4 x float> %102, %10 ; <<4 x float>>:103 [#uses=1]
813 fmul <4 x float> %103, %11 ; <<4 x float>>:104 [#uses=1]
814 fmul <4 x float> %104, %12 ; <<4 x float>>:105 [#uses=1]
815 fmul <4 x float> %105, %13 ; <<4 x float>>:106 [#uses=1]
816 fmul <4 x float> %106, %14 ; <<4 x float>>:107 [#uses=1]
817 fmul <4 x float> %107, %15 ; <<4 x float>>:108 [#uses=1]
818 fmul <4 x float> %108, %16 ; <<4 x float>>:109 [#uses=1]
819 fmul <4 x float> %109, %17 ; <<4 x float>>:110 [#uses=1]
820 fmul <4 x float> %110, %18 ; <<4 x float>>:111 [#uses=1]
821 fmul <4 x float> %111, %19 ; <<4 x float>>:112 [#uses=1]
822 fmul <4 x float> %112, %20 ; <<4 x float>>:113 [#uses=1]
823 fmul <4 x float> %113, %21 ; <<4 x float>>:114 [#uses=1]
824 fmul <4 x float> %114, %22 ; <<4 x float>>:115 [#uses=1]
825 fmul <4 x float> %115, %23 ; <<4 x float>>:116 [#uses=1]
826 fmul <4 x float> %116, %24 ; <<4 x float>>:117 [#uses=1]
827 fmul <4 x float> %117, %25 ; <<4 x float>>:118 [#uses=1]
828 fmul <4 x float> %118, %26 ; <<4 x float>>:119 [#uses=1]
829 fmul <4 x float> %119, %27 ; <<4 x float>>:120 [#uses=1]
830 fmul <4 x float> %120, %28 ; <<4 x float>>:121 [#uses=1]
831 fmul <4 x float> %121, %29 ; <<4 x float>>:122 [#uses=1]
832 fmul <4 x float> %122, %30 ; <<4 x float>>:123 [#uses=1]
833 fmul <4 x float> %123, %31 ; <<4 x float>>:124 [#uses=1]
834 fmul <4 x float> %124, %32 ; <<4 x float>>:125 [#uses=1]
835 fmul <4 x float> %4, %4 ; <<4 x float>>:126 [#uses=1]
836 fmul <4 x float> %126, %5 ; <<4 x float>>:127 [#uses=1]
837 fmul <4 x float> %127, %6 ; <<4 x float>>:128 [#uses=1]
838 fmul <4 x float> %128, %7 ; <<4 x float>>:129 [#uses=1]
839 fmul <4 x float> %129, %8 ; <<4 x float>>:130 [#uses=1]
840 fmul <4 x float> %130, %9 ; <<4 x float>>:131 [#uses=1]
841 fmul <4 x float> %131, %10 ; <<4 x float>>:132 [#uses=1]
842 fmul <4 x float> %132, %11 ; <<4 x float>>:133 [#uses=1]
843 fmul <4 x float> %133, %12 ; <<4 x float>>:134 [#uses=1]
844 fmul <4 x float> %134, %13 ; <<4 x float>>:135 [#uses=1]
845 fmul <4 x float> %135, %14 ; <<4 x float>>:136 [#uses=1]
846 fmul <4 x float> %136, %15 ; <<4 x float>>:137 [#uses=1]
847 fmul <4 x float> %137, %16 ; <<4 x float>>:138 [#uses=1]
848 fmul <4 x float> %138, %17 ; <<4 x float>>:139 [#uses=1]
849 fmul <4 x float> %139, %18 ; <<4 x float>>:140 [#uses=1]
850 fmul <4 x float> %140, %19 ; <<4 x float>>:141 [#uses=1]
851 fmul <4 x float> %141, %20 ; <<4 x float>>:142 [#uses=1]
852 fmul <4 x float> %142, %21 ; <<4 x float>>:143 [#uses=1]
853 fmul <4 x float> %143, %22 ; <<4 x float>>:144 [#uses=1]
854 fmul <4 x float> %144, %23 ; <<4 x float>>:145 [#uses=1]
855 fmul <4 x float> %145, %24 ; <<4 x float>>:146 [#uses=1]
856 fmul <4 x float> %146, %25 ; <<4 x float>>:147 [#uses=1]
857 fmul <4 x float> %147, %26 ; <<4 x float>>:148 [#uses=1]
858 fmul <4 x float> %148, %27 ; <<4 x float>>:149 [#uses=1]
859 fmul <4 x float> %149, %28 ; <<4 x float>>:150 [#uses=1]
860 fmul <4 x float> %150, %29 ; <<4 x float>>:151 [#uses=1]
861 fmul <4 x float> %151, %30 ; <<4 x float>>:152 [#uses=1]
862 fmul <4 x float> %152, %31 ; <<4 x float>>:153 [#uses=1]
863 fmul <4 x float> %153, %32 ; <<4 x float>>:154 [#uses=1]
864 fmul <4 x float> %5, %5 ; <<4 x float>>:155 [#uses=1]
865 fmul <4 x float> %155, %6 ; <<4 x float>>:156 [#uses=1]
866 fmul <4 x float> %156, %7 ; <<4 x float>>:157 [#uses=1]
867 fmul <4 x float> %157, %8 ; <<4 x float>>:158 [#uses=1]
868 fmul <4 x float> %158, %9 ; <<4 x float>>:159 [#uses=1]
869 fmul <4 x float> %159, %10 ; <<4 x float>>:160 [#uses=1]
870 fmul <4 x float> %160, %11 ; <<4 x float>>:161 [#uses=1]
871 fmul <4 x float> %161, %12 ; <<4 x float>>:162 [#uses=1]
872 fmul <4 x float> %162, %13 ; <<4 x float>>:163 [#uses=1]
873 fmul <4 x float> %163, %14 ; <<4 x float>>:164 [#uses=1]
874 fmul <4 x float> %164, %15 ; <<4 x float>>:165 [#uses=1]
875 fmul <4 x float> %165, %16 ; <<4 x float>>:166 [#uses=1]
876 fmul <4 x float> %166, %17 ; <<4 x float>>:167 [#uses=1]
877 fmul <4 x float> %167, %18 ; <<4 x float>>:168 [#uses=1]
878 fmul <4 x float> %168, %19 ; <<4 x float>>:169 [#uses=1]
879 fmul <4 x float> %169, %20 ; <<4 x float>>:170 [#uses=1]
880 fmul <4 x float> %170, %21 ; <<4 x float>>:171 [#uses=1]
881 fmul <4 x float> %171, %22 ; <<4 x float>>:172 [#uses=1]
882 fmul <4 x float> %172, %23 ; <<4 x float>>:173 [#uses=1]
883 fmul <4 x float> %173, %24 ; <<4 x float>>:174 [#uses=1]
884 fmul <4 x float> %174, %25 ; <<4 x float>>:175 [#uses=1]
885 fmul <4 x float> %175, %26 ; <<4 x float>>:176 [#uses=1]
886 fmul <4 x float> %176, %27 ; <<4 x float>>:177 [#uses=1]
887 fmul <4 x float> %177, %28 ; <<4 x float>>:178 [#uses=1]
888 fmul <4 x float> %178, %29 ; <<4 x float>>:179 [#uses=1]
889 fmul <4 x float> %179, %30 ; <<4 x float>>:180 [#uses=1]
890 fmul <4 x float> %180, %31 ; <<4 x float>>:181 [#uses=1]
891 fmul <4 x float> %181, %32 ; <<4 x float>>:182 [#uses=1]
892 fmul <4 x float> %6, %6 ; <<4 x float>>:183 [#uses=1]
893 fmul <4 x float> %183, %7 ; <<4 x float>>:184 [#uses=1]
894 fmul <4 x float> %184, %8 ; <<4 x float>>:185 [#uses=1]
895 fmul <4 x float> %185, %9 ; <<4 x float>>:186 [#uses=1]
896 fmul <4 x float> %186, %10 ; <<4 x float>>:187 [#uses=1]
897 fmul <4 x float> %187, %11 ; <<4 x float>>:188 [#uses=1]
898 fmul <4 x float> %188, %12 ; <<4 x float>>:189 [#uses=1]
899 fmul <4 x float> %189, %13 ; <<4 x float>>:190 [#uses=1]
900 fmul <4 x float> %190, %14 ; <<4 x float>>:191 [#uses=1]
901 fmul <4 x float> %191, %15 ; <<4 x float>>:192 [#uses=1]
902 fmul <4 x float> %192, %16 ; <<4 x float>>:193 [#uses=1]
903 fmul <4 x float> %193, %17 ; <<4 x float>>:194 [#uses=1]
904 fmul <4 x float> %194, %18 ; <<4 x float>>:195 [#uses=1]
905 fmul <4 x float> %195, %19 ; <<4 x float>>:196 [#uses=1]
906 fmul <4 x float> %196, %20 ; <<4 x float>>:197 [#uses=1]
907 fmul <4 x float> %197, %21 ; <<4 x float>>:198 [#uses=1]
908 fmul <4 x float> %198, %22 ; <<4 x float>>:199 [#uses=1]
909 fmul <4 x float> %199, %23 ; <<4 x float>>:200 [#uses=1]
910 fmul <4 x float> %200, %24 ; <<4 x float>>:201 [#uses=1]
911 fmul <4 x float> %201, %25 ; <<4 x float>>:202 [#uses=1]
912 fmul <4 x float> %202, %26 ; <<4 x float>>:203 [#uses=1]
913 fmul <4 x float> %203, %27 ; <<4 x float>>:204 [#uses=1]
914 fmul <4 x float> %204, %28 ; <<4 x float>>:205 [#uses=1]
915 fmul <4 x float> %205, %29 ; <<4 x float>>:206 [#uses=1]
916 fmul <4 x float> %206, %30 ; <<4 x float>>:207 [#uses=1]
917 fmul <4 x float> %207, %31 ; <<4 x float>>:208 [#uses=1]
918 fmul <4 x float> %208, %32 ; <<4 x float>>:209 [#uses=1]
919 fmul <4 x float> %7, %7 ; <<4 x float>>:210 [#uses=1]
920 fmul <4 x float> %210, %8 ; <<4 x float>>:211 [#uses=1]
921 fmul <4 x float> %211, %9 ; <<4 x float>>:212 [#uses=1]
922 fmul <4 x float> %212, %10 ; <<4 x float>>:213 [#uses=1]
923 fmul <4 x float> %213, %11 ; <<4 x float>>:214 [#uses=1]
924 fmul <4 x float> %214, %12 ; <<4 x float>>:215 [#uses=1]
925 fmul <4 x float> %215, %13 ; <<4 x float>>:216 [#uses=1]
926 fmul <4 x float> %216, %14 ; <<4 x float>>:217 [#uses=1]
927 fmul <4 x float> %217, %15 ; <<4 x float>>:218 [#uses=1]
928 fmul <4 x float> %218, %16 ; <<4 x float>>:219 [#uses=1]
929 fmul <4 x float> %219, %17 ; <<4 x float>>:220 [#uses=1]
930 fmul <4 x float> %220, %18 ; <<4 x float>>:221 [#uses=1]
931 fmul <4 x float> %221, %19 ; <<4 x float>>:222 [#uses=1]
932 fmul <4 x float> %222, %20 ; <<4 x float>>:223 [#uses=1]
933 fmul <4 x float> %223, %21 ; <<4 x float>>:224 [#uses=1]
934 fmul <4 x float> %224, %22 ; <<4 x float>>:225 [#uses=1]
935 fmul <4 x float> %225, %23 ; <<4 x float>>:226 [#uses=1]
936 fmul <4 x float> %226, %24 ; <<4 x float>>:227 [#uses=1]
937 fmul <4 x float> %227, %25 ; <<4 x float>>:228 [#uses=1]
938 fmul <4 x float> %228, %26 ; <<4 x float>>:229 [#uses=1]
939 fmul <4 x float> %229, %27 ; <<4 x float>>:230 [#uses=1]
940 fmul <4 x float> %230, %28 ; <<4 x float>>:231 [#uses=1]
941 fmul <4 x float> %231, %29 ; <<4 x float>>:232 [#uses=1]
942 fmul <4 x float> %232, %30 ; <<4 x float>>:233 [#uses=1]
943 fmul <4 x float> %233, %31 ; <<4 x float>>:234 [#uses=1]
944 fmul <4 x float> %234, %32 ; <<4 x float>>:235 [#uses=1]
945 fmul <4 x float> %8, %8 ; <<4 x float>>:236 [#uses=1]
946 fmul <4 x float> %236, %9 ; <<4 x float>>:237 [#uses=1]
947 fmul <4 x float> %237, %10 ; <<4 x float>>:238 [#uses=1]
948 fmul <4 x float> %238, %11 ; <<4 x float>>:239 [#uses=1]
949 fmul <4 x float> %239, %12 ; <<4 x float>>:240 [#uses=1]
950 fmul <4 x float> %240, %13 ; <<4 x float>>:241 [#uses=1]
951 fmul <4 x float> %241, %14 ; <<4 x float>>:242 [#uses=1]
952 fmul <4 x float> %242, %15 ; <<4 x float>>:243 [#uses=1]
953 fmul <4 x float> %243, %16 ; <<4 x float>>:244 [#uses=1]
954 fmul <4 x float> %244, %17 ; <<4 x float>>:245 [#uses=1]
955 fmul <4 x float> %245, %18 ; <<4 x float>>:246 [#uses=1]
956 fmul <4 x float> %246, %19 ; <<4 x float>>:247 [#uses=1]
957 fmul <4 x float> %247, %20 ; <<4 x float>>:248 [#uses=1]
958 fmul <4 x float> %248, %21 ; <<4 x float>>:249 [#uses=1]
959 fmul <4 x float> %249, %22 ; <<4 x float>>:250 [#uses=1]
960 fmul <4 x float> %250, %23 ; <<4 x float>>:251 [#uses=1]
961 fmul <4 x float> %251, %24 ; <<4 x float>>:252 [#uses=1]
962 fmul <4 x float> %252, %25 ; <<4 x float>>:253 [#uses=1]
963 fmul <4 x float> %253, %26 ; <<4 x float>>:254 [#uses=1]
964 fmul <4 x float> %254, %27 ; <<4 x float>>:255 [#uses=1]
965 fmul <4 x float> %255, %28 ; <<4 x float>>:256 [#uses=1]
966 fmul <4 x float> %256, %29 ; <<4 x float>>:257 [#uses=1]
967 fmul <4 x float> %257, %30 ; <<4 x float>>:258 [#uses=1]
968 fmul <4 x float> %258, %31 ; <<4 x float>>:259 [#uses=1]
969 fmul <4 x float> %259, %32 ; <<4 x float>>:260 [#uses=1]
970 fmul <4 x float> %9, %9 ; <<4 x float>>:261 [#uses=1]
971 fmul <4 x float> %261, %10 ; <<4 x float>>:262 [#uses=1]
972 fmul <4 x float> %262, %11 ; <<4 x float>>:263 [#uses=1]
973 fmul <4 x float> %263, %12 ; <<4 x float>>:264 [#uses=1]
974 fmul <4 x float> %264, %13 ; <<4 x float>>:265 [#uses=1]
975 fmul <4 x float> %265, %14 ; <<4 x float>>:266 [#uses=1]
976 fmul <4 x float> %266, %15 ; <<4 x float>>:267 [#uses=1]
977 fmul <4 x float> %267, %16 ; <<4 x float>>:268 [#uses=1]
978 fmul <4 x float> %268, %17 ; <<4 x float>>:269 [#uses=1]
979 fmul <4 x float> %269, %18 ; <<4 x float>>:270 [#uses=1]
980 fmul <4 x float> %270, %19 ; <<4 x float>>:271 [#uses=1]
981 fmul <4 x float> %271, %20 ; <<4 x float>>:272 [#uses=1]
982 fmul <4 x float> %272, %21 ; <<4 x float>>:273 [#uses=1]
983 fmul <4 x float> %273, %22 ; <<4 x float>>:274 [#uses=1]
984 fmul <4 x float> %274, %23 ; <<4 x float>>:275 [#uses=1]
985 fmul <4 x float> %275, %24 ; <<4 x float>>:276 [#uses=1]
986 fmul <4 x float> %276, %25 ; <<4 x float>>:277 [#uses=1]
987 fmul <4 x float> %277, %26 ; <<4 x float>>:278 [#uses=1]
988 fmul <4 x float> %278, %27 ; <<4 x float>>:279 [#uses=1]
989 fmul <4 x float> %279, %28 ; <<4 x float>>:280 [#uses=1]
990 fmul <4 x float> %280, %29 ; <<4 x float>>:281 [#uses=1]
991 fmul <4 x float> %281, %30 ; <<4 x float>>:282 [#uses=1]
992 fmul <4 x float> %282, %31 ; <<4 x float>>:283 [#uses=1]
993 fmul <4 x float> %283, %32 ; <<4 x float>>:284 [#uses=1]
994 fmul <4 x float> %10, %10 ; <<4 x float>>:285 [#uses=1]
995 fmul <4 x float> %285, %11 ; <<4 x float>>:286 [#uses=1]
996 fmul <4 x float> %286, %12 ; <<4 x float>>:287 [#uses=1]
997 fmul <4 x float> %287, %13 ; <<4 x float>>:288 [#uses=1]
998 fmul <4 x float> %288, %14 ; <<4 x float>>:289 [#uses=1]
999 fmul <4 x float> %289, %15 ; <<4 x float>>:290 [#uses=1]
1000 fmul <4 x float> %290, %16 ; <<4 x float>>:291 [#uses=1]
1001 fmul <4 x float> %291, %17 ; <<4 x float>>:292 [#uses=1]
1002 fmul <4 x float> %292, %18 ; <<4 x float>>:293 [#uses=1]
1003 fmul <4 x float> %293, %19 ; <<4 x float>>:294 [#uses=1]
1004 fmul <4 x float> %294, %20 ; <<4 x float>>:295 [#uses=1]
1005 fmul <4 x float> %295, %21 ; <<4 x float>>:296 [#uses=1]
1006 fmul <4 x float> %296, %22 ; <<4 x float>>:297 [#uses=1]
1007 fmul <4 x float> %297, %23 ; <<4 x float>>:298 [#uses=1]
1008 fmul <4 x float> %298, %24 ; <<4 x float>>:299 [#uses=1]
1009 fmul <4 x float> %299, %25 ; <<4 x float>>:300 [#uses=1]
1010 fmul <4 x float> %300, %26 ; <<4 x float>>:301 [#uses=1]
1011 fmul <4 x float> %301, %27 ; <<4 x float>>:302 [#uses=1]
1012 fmul <4 x float> %302, %28 ; <<4 x float>>:303 [#uses=1]
1013 fmul <4 x float> %303, %29 ; <<4 x float>>:304 [#uses=1]
1014 fmul <4 x float> %304, %30 ; <<4 x float>>:305 [#uses=1]
1015 fmul <4 x float> %305, %31 ; <<4 x float>>:306 [#uses=1]
1016 fmul <4 x float> %306, %32 ; <<4 x float>>:307 [#uses=1]
1017 fmul <4 x float> %11, %11 ; <<4 x float>>:308 [#uses=1]
1018 fmul <4 x float> %308, %12 ; <<4 x float>>:309 [#uses=1]
1019 fmul <4 x float> %309, %13 ; <<4 x float>>:310 [#uses=1]
1020 fmul <4 x float> %310, %14 ; <<4 x float>>:311 [#uses=1]
1021 fmul <4 x float> %311, %15 ; <<4 x float>>:312 [#uses=1]
1022 fmul <4 x float> %312, %16 ; <<4 x float>>:313 [#uses=1]
1023 fmul <4 x float> %313, %17 ; <<4 x float>>:314 [#uses=1]
1024 fmul <4 x float> %314, %18 ; <<4 x float>>:315 [#uses=1]
1025 fmul <4 x float> %315, %19 ; <<4 x float>>:316 [#uses=1]
1026 fmul <4 x float> %316, %20 ; <<4 x float>>:317 [#uses=1]
1027 fmul <4 x float> %317, %21 ; <<4 x float>>:318 [#uses=1]
1028 fmul <4 x float> %318, %22 ; <<4 x float>>:319 [#uses=1]
1029 fmul <4 x float> %319, %23 ; <<4 x float>>:320 [#uses=1]
1030 fmul <4 x float> %320, %24 ; <<4 x float>>:321 [#uses=1]
1031 fmul <4 x float> %321, %25 ; <<4 x float>>:322 [#uses=1]
1032 fmul <4 x float> %322, %26 ; <<4 x float>>:323 [#uses=1]
1033 fmul <4 x float> %323, %27 ; <<4 x float>>:324 [#uses=1]
1034 fmul <4 x float> %324, %28 ; <<4 x float>>:325 [#uses=1]
1035 fmul <4 x float> %325, %29 ; <<4 x float>>:326 [#uses=1]
1036 fmul <4 x float> %326, %30 ; <<4 x float>>:327 [#uses=1]
1037 fmul <4 x float> %327, %31 ; <<4 x float>>:328 [#uses=1]
1038 fmul <4 x float> %328, %32 ; <<4 x float>>:329 [#uses=1]
1039 fmul <4 x float> %12, %12 ; <<4 x float>>:330 [#uses=1]
1040 fmul <4 x float> %330, %13 ; <<4 x float>>:331 [#uses=1]
1041 fmul <4 x float> %331, %14 ; <<4 x float>>:332 [#uses=1]
1042 fmul <4 x float> %332, %15 ; <<4 x float>>:333 [#uses=1]
1043 fmul <4 x float> %333, %16 ; <<4 x float>>:334 [#uses=1]
1044 fmul <4 x float> %334, %17 ; <<4 x float>>:335 [#uses=1]
1045 fmul <4 x float> %335, %18 ; <<4 x float>>:336 [#uses=1]
1046 fmul <4 x float> %336, %19 ; <<4 x float>>:337 [#uses=1]
1047 fmul <4 x float> %337, %20 ; <<4 x float>>:338 [#uses=1]
1048 fmul <4 x float> %338, %21 ; <<4 x float>>:339 [#uses=1]
1049 fmul <4 x float> %339, %22 ; <<4 x float>>:340 [#uses=1]
1050 fmul <4 x float> %340, %23 ; <<4 x float>>:341 [#uses=1]
1051 fmul <4 x float> %341, %24 ; <<4 x float>>:342 [#uses=1]
1052 fmul <4 x float> %342, %25 ; <<4 x float>>:343 [#uses=1]
1053 fmul <4 x float> %343, %26 ; <<4 x float>>:344 [#uses=1]
1054 fmul <4 x float> %344, %27 ; <<4 x float>>:345 [#uses=1]
1055 fmul <4 x float> %345, %28 ; <<4 x float>>:346 [#uses=1]
1056 fmul <4 x float> %346, %29 ; <<4 x float>>:347 [#uses=1]
1057 fmul <4 x float> %347, %30 ; <<4 x float>>:348 [#uses=1]
1058 fmul <4 x float> %348, %31 ; <<4 x float>>:349 [#uses=1]
1059 fmul <4 x float> %349, %32 ; <<4 x float>>:350 [#uses=1]
1060 fmul <4 x float> %13, %13 ; <<4 x float>>:351 [#uses=1]
1061 fmul <4 x float> %351, %14 ; <<4 x float>>:352 [#uses=1]
1062 fmul <4 x float> %352, %15 ; <<4 x float>>:353 [#uses=1]
1063 fmul <4 x float> %353, %16 ; <<4 x float>>:354 [#uses=1]
1064 fmul <4 x float> %354, %17 ; <<4 x float>>:355 [#uses=1]
1065 fmul <4 x float> %355, %18 ; <<4 x float>>:356 [#uses=1]
1066 fmul <4 x float> %356, %19 ; <<4 x float>>:357 [#uses=1]
1067 fmul <4 x float> %357, %20 ; <<4 x float>>:358 [#uses=1]
1068 fmul <4 x float> %358, %21 ; <<4 x float>>:359 [#uses=1]
1069 fmul <4 x float> %359, %22 ; <<4 x float>>:360 [#uses=1]
1070 fmul <4 x float> %360, %23 ; <<4 x float>>:361 [#uses=1]
1071 fmul <4 x float> %361, %24 ; <<4 x float>>:362 [#uses=1]
1072 fmul <4 x float> %362, %25 ; <<4 x float>>:363 [#uses=1]
1073 fmul <4 x float> %363, %26 ; <<4 x float>>:364 [#uses=1]
1074 fmul <4 x float> %364, %27 ; <<4 x float>>:365 [#uses=1]
1075 fmul <4 x float> %365, %28 ; <<4 x float>>:366 [#uses=1]
1076 fmul <4 x float> %366, %29 ; <<4 x float>>:367 [#uses=1]
1077 fmul <4 x float> %367, %30 ; <<4 x float>>:368 [#uses=1]
1078 fmul <4 x float> %368, %31 ; <<4 x float>>:369 [#uses=1]
1079 fmul <4 x float> %369, %32 ; <<4 x float>>:370 [#uses=1]
1080 fmul <4 x float> %14, %14 ; <<4 x float>>:371 [#uses=1]
1081 fmul <4 x float> %371, %15 ; <<4 x float>>:372 [#uses=1]
1082 fmul <4 x float> %372, %16 ; <<4 x float>>:373 [#uses=1]
1083 fmul <4 x float> %373, %17 ; <<4 x float>>:374 [#uses=1]
1084 fmul <4 x float> %374, %18 ; <<4 x float>>:375 [#uses=1]
1085 fmul <4 x float> %375, %19 ; <<4 x float>>:376 [#uses=1]
1086 fmul <4 x float> %376, %20 ; <<4 x float>>:377 [#uses=1]
1087 fmul <4 x float> %377, %21 ; <<4 x float>>:378 [#uses=1]
1088 fmul <4 x float> %378, %22 ; <<4 x float>>:379 [#uses=1]
1089 fmul <4 x float> %379, %23 ; <<4 x float>>:380 [#uses=1]
1090 fmul <4 x float> %380, %24 ; <<4 x float>>:381 [#uses=1]
1091 fmul <4 x float> %381, %25 ; <<4 x float>>:382 [#uses=1]
1092 fmul <4 x float> %382, %26 ; <<4 x float>>:383 [#uses=1]
1093 fmul <4 x float> %383, %27 ; <<4 x float>>:384 [#uses=1]
1094 fmul <4 x float> %384, %28 ; <<4 x float>>:385 [#uses=1]
1095 fmul <4 x float> %385, %29 ; <<4 x float>>:386 [#uses=1]
1096 fmul <4 x float> %386, %30 ; <<4 x float>>:387 [#uses=1]
1097 fmul <4 x float> %387, %31 ; <<4 x float>>:388 [#uses=1]
1098 fmul <4 x float> %388, %32 ; <<4 x float>>:389 [#uses=1]
1099 fmul <4 x float> %15, %15 ; <<4 x float>>:390 [#uses=1]
1100 fmul <4 x float> %390, %16 ; <<4 x float>>:391 [#uses=1]
1101 fmul <4 x float> %391, %17 ; <<4 x float>>:392 [#uses=1]
1102 fmul <4 x float> %392, %18 ; <<4 x float>>:393 [#uses=1]
1103 fmul <4 x float> %393, %19 ; <<4 x float>>:394 [#uses=1]
1104 fmul <4 x float> %394, %20 ; <<4 x float>>:395 [#uses=1]
1105 fmul <4 x float> %395, %21 ; <<4 x float>>:396 [#uses=1]
1106 fmul <4 x float> %396, %22 ; <<4 x float>>:397 [#uses=1]
1107 fmul <4 x float> %397, %23 ; <<4 x float>>:398 [#uses=1]
1108 fmul <4 x float> %398, %24 ; <<4 x float>>:399 [#uses=1]
1109 fmul <4 x float> %399, %25 ; <<4 x float>>:400 [#uses=1]
1110 fmul <4 x float> %400, %26 ; <<4 x float>>:401 [#uses=1]
1111 fmul <4 x float> %401, %27 ; <<4 x float>>:402 [#uses=1]
1112 fmul <4 x float> %402, %28 ; <<4 x float>>:403 [#uses=1]
1113 fmul <4 x float> %403, %29 ; <<4 x float>>:404 [#uses=1]
1114 fmul <4 x float> %404, %30 ; <<4 x float>>:405 [#uses=1]
1115 fmul <4 x float> %405, %31 ; <<4 x float>>:406 [#uses=1]
1116 fmul <4 x float> %406, %32 ; <<4 x float>>:407 [#uses=1]
1117 fmul <4 x float> %16, %16 ; <<4 x float>>:408 [#uses=1]
1118 fmul <4 x float> %408, %17 ; <<4 x float>>:409 [#uses=1]
1119 fmul <4 x float> %409, %18 ; <<4 x float>>:410 [#uses=1]
1120 fmul <4 x float> %410, %19 ; <<4 x float>>:411 [#uses=1]
1121 fmul <4 x float> %411, %20 ; <<4 x float>>:412 [#uses=1]
1122 fmul <4 x float> %412, %21 ; <<4 x float>>:413 [#uses=1]
1123 fmul <4 x float> %413, %22 ; <<4 x float>>:414 [#uses=1]
1124 fmul <4 x float> %414, %23 ; <<4 x float>>:415 [#uses=1]
1125 fmul <4 x float> %415, %24 ; <<4 x float>>:416 [#uses=1]
1126 fmul <4 x float> %416, %25 ; <<4 x float>>:417 [#uses=1]
1127 fmul <4 x float> %417, %26 ; <<4 x float>>:418 [#uses=1]
1128 fmul <4 x float> %418, %27 ; <<4 x float>>:419 [#uses=1]
1129 fmul <4 x float> %419, %28 ; <<4 x float>>:420 [#uses=1]
1130 fmul <4 x float> %420, %29 ; <<4 x float>>:421 [#uses=1]
1131 fmul <4 x float> %421, %30 ; <<4 x float>>:422 [#uses=1]
1132 fmul <4 x float> %422, %31 ; <<4 x float>>:423 [#uses=1]
1133 fmul <4 x float> %423, %32 ; <<4 x float>>:424 [#uses=1]
1134 fmul <4 x float> %17, %17 ; <<4 x float>>:425 [#uses=1]
1135 fmul <4 x float> %425, %18 ; <<4 x float>>:426 [#uses=1]
1136 fmul <4 x float> %426, %19 ; <<4 x float>>:427 [#uses=1]
1137 fmul <4 x float> %427, %20 ; <<4 x float>>:428 [#uses=1]
1138 fmul <4 x float> %428, %21 ; <<4 x float>>:429 [#uses=1]
1139 fmul <4 x float> %429, %22 ; <<4 x float>>:430 [#uses=1]
1140 fmul <4 x float> %430, %23 ; <<4 x float>>:431 [#uses=1]
1141 fmul <4 x float> %431, %24 ; <<4 x float>>:432 [#uses=1]
1142 fmul <4 x float> %432, %25 ; <<4 x float>>:433 [#uses=1]
1143 fmul <4 x float> %433, %26 ; <<4 x float>>:434 [#uses=1]
1144 fmul <4 x float> %434, %27 ; <<4 x float>>:435 [#uses=1]
1145 fmul <4 x float> %435, %28 ; <<4 x float>>:436 [#uses=1]
1146 fmul <4 x float> %436, %29 ; <<4 x float>>:437 [#uses=1]
1147 fmul <4 x float> %437, %30 ; <<4 x float>>:438 [#uses=1]
1148 fmul <4 x float> %438, %31 ; <<4 x float>>:439 [#uses=1]
1149 fmul <4 x float> %439, %32 ; <<4 x float>>:440 [#uses=1]
1150 fmul <4 x float> %18, %18 ; <<4 x float>>:441 [#uses=1]
1151 fmul <4 x float> %441, %19 ; <<4 x float>>:442 [#uses=1]
1152 fmul <4 x float> %442, %20 ; <<4 x float>>:443 [#uses=1]
1153 fmul <4 x float> %443, %21 ; <<4 x float>>:444 [#uses=1]
1154 fmul <4 x float> %444, %22 ; <<4 x float>>:445 [#uses=1]
1155 fmul <4 x float> %445, %23 ; <<4 x float>>:446 [#uses=1]
1156 fmul <4 x float> %446, %24 ; <<4 x float>>:447 [#uses=1]
1157 fmul <4 x float> %447, %25 ; <<4 x float>>:448 [#uses=1]
1158 fmul <4 x float> %448, %26 ; <<4 x float>>:449 [#uses=1]
1159 fmul <4 x float> %449, %27 ; <<4 x float>>:450 [#uses=1]
1160 fmul <4 x float> %450, %28 ; <<4 x float>>:451 [#uses=1]
1161 fmul <4 x float> %451, %29 ; <<4 x float>>:452 [#uses=1]
1162 fmul <4 x float> %452, %30 ; <<4 x float>>:453 [#uses=1]
1163 fmul <4 x float> %453, %31 ; <<4 x float>>:454 [#uses=1]
1164 fmul <4 x float> %454, %32 ; <<4 x float>>:455 [#uses=1]
1165 fmul <4 x float> %19, %19 ; <<4 x float>>:456 [#uses=1]
1166 fmul <4 x float> %456, %20 ; <<4 x float>>:457 [#uses=1]
1167 fmul <4 x float> %457, %21 ; <<4 x float>>:458 [#uses=1]
1168 fmul <4 x float> %458, %22 ; <<4 x float>>:459 [#uses=1]
1169 fmul <4 x float> %459, %23 ; <<4 x float>>:460 [#uses=1]
1170 fmul <4 x float> %460, %24 ; <<4 x float>>:461 [#uses=1]
1171 fmul <4 x float> %461, %25 ; <<4 x float>>:462 [#uses=1]
1172 fmul <4 x float> %462, %26 ; <<4 x float>>:463 [#uses=1]
1173 fmul <4 x float> %463, %27 ; <<4 x float>>:464 [#uses=1]
1174 fmul <4 x float> %464, %28 ; <<4 x float>>:465 [#uses=1]
1175 fmul <4 x float> %465, %29 ; <<4 x float>>:466 [#uses=1]
1176 fmul <4 x float> %466, %30 ; <<4 x float>>:467 [#uses=1]
1177 fmul <4 x float> %467, %31 ; <<4 x float>>:468 [#uses=1]
1178 fmul <4 x float> %468, %32 ; <<4 x float>>:469 [#uses=1]
1179 fmul <4 x float> %20, %20 ; <<4 x float>>:470 [#uses=1]
1180 fmul <4 x float> %470, %21 ; <<4 x float>>:471 [#uses=1]
1181 fmul <4 x float> %471, %22 ; <<4 x float>>:472 [#uses=1]
1182 fmul <4 x float> %472, %23 ; <<4 x float>>:473 [#uses=1]
1183 fmul <4 x float> %473, %24 ; <<4 x float>>:474 [#uses=1]
1184 fmul <4 x float> %474, %25 ; <<4 x float>>:475 [#uses=1]
1185 fmul <4 x float> %475, %26 ; <<4 x float>>:476 [#uses=1]
1186 fmul <4 x float> %476, %27 ; <<4 x float>>:477 [#uses=1]
1187 fmul <4 x float> %477, %28 ; <<4 x float>>:478 [#uses=1]
1188 fmul <4 x float> %478, %29 ; <<4 x float>>:479 [#uses=1]
1189 fmul <4 x float> %479, %30 ; <<4 x float>>:480 [#uses=1]
1190 fmul <4 x float> %480, %31 ; <<4 x float>>:481 [#uses=1]
1191 fmul <4 x float> %481, %32 ; <<4 x float>>:482 [#uses=1]
1192 fmul <4 x float> %21, %21 ; <<4 x float>>:483 [#uses=1]
1193 fmul <4 x float> %483, %22 ; <<4 x float>>:484 [#uses=1]
1194 fmul <4 x float> %484, %23 ; <<4 x float>>:485 [#uses=1]
1195 fmul <4 x float> %485, %24 ; <<4 x float>>:486 [#uses=1]
1196 fmul <4 x float> %486, %25 ; <<4 x float>>:487 [#uses=1]
1197 fmul <4 x float> %487, %26 ; <<4 x float>>:488 [#uses=1]
1198 fmul <4 x float> %488, %27 ; <<4 x float>>:489 [#uses=1]
1199 fmul <4 x float> %489, %28 ; <<4 x float>>:490 [#uses=1]
1200 fmul <4 x float> %490, %29 ; <<4 x float>>:491 [#uses=1]
1201 fmul <4 x float> %491, %30 ; <<4 x float>>:492 [#uses=1]
1202 fmul <4 x float> %492, %31 ; <<4 x float>>:493 [#uses=1]
1203 fmul <4 x float> %493, %32 ; <<4 x float>>:494 [#uses=1]
1204 fmul <4 x float> %22, %22 ; <<4 x float>>:495 [#uses=1]
1205 fmul <4 x float> %495, %23 ; <<4 x float>>:496 [#uses=1]
1206 fmul <4 x float> %496, %24 ; <<4 x float>>:497 [#uses=1]
1207 fmul <4 x float> %497, %25 ; <<4 x float>>:498 [#uses=1]
1208 fmul <4 x float> %498, %26 ; <<4 x float>>:499 [#uses=1]
1209 fmul <4 x float> %499, %27 ; <<4 x float>>:500 [#uses=1]
1210 fmul <4 x float> %500, %28 ; <<4 x float>>:501 [#uses=1]
1211 fmul <4 x float> %501, %29 ; <<4 x float>>:502 [#uses=1]
1212 fmul <4 x float> %502, %30 ; <<4 x float>>:503 [#uses=1]
1213 fmul <4 x float> %503, %31 ; <<4 x float>>:504 [#uses=1]
1214 fmul <4 x float> %504, %32 ; <<4 x float>>:505 [#uses=1]
1215 fmul <4 x float> %23, %23 ; <<4 x float>>:506 [#uses=1]
1216 fmul <4 x float> %506, %24 ; <<4 x float>>:507 [#uses=1]
1217 fmul <4 x float> %507, %25 ; <<4 x float>>:508 [#uses=1]
1218 fmul <4 x float> %508, %26 ; <<4 x float>>:509 [#uses=1]
1219 fmul <4 x float> %509, %27 ; <<4 x float>>:510 [#uses=1]
1220 fmul <4 x float> %510, %28 ; <<4 x float>>:511 [#uses=1]
1221 fmul <4 x float> %511, %29 ; <<4 x float>>:512 [#uses=1]
1222 fmul <4 x float> %512, %30 ; <<4 x float>>:513 [#uses=1]
1223 fmul <4 x float> %513, %31 ; <<4 x float>>:514 [#uses=1]
1224 fmul <4 x float> %514, %32 ; <<4 x float>>:515 [#uses=1]
1225 fmul <4 x float> %24, %24 ; <<4 x float>>:516 [#uses=1]
1226 fmul <4 x float> %516, %25 ; <<4 x float>>:517 [#uses=1]
1227 fmul <4 x float> %517, %26 ; <<4 x float>>:518 [#uses=1]
1228 fmul <4 x float> %518, %27 ; <<4 x float>>:519 [#uses=1]
1229 fmul <4 x float> %519, %28 ; <<4 x float>>:520 [#uses=1]
1230 fmul <4 x float> %520, %29 ; <<4 x float>>:521 [#uses=1]
1231 fmul <4 x float> %521, %30 ; <<4 x float>>:522 [#uses=1]
1232 fmul <4 x float> %522, %31 ; <<4 x float>>:523 [#uses=1]
1233 fmul <4 x float> %523, %32 ; <<4 x float>>:524 [#uses=1]
1234 fmul <4 x float> %25, %25 ; <<4 x float>>:525 [#uses=1]
1235 fmul <4 x float> %525, %26 ; <<4 x float>>:526 [#uses=1]
1236 fmul <4 x float> %526, %27 ; <<4 x float>>:527 [#uses=1]
1237 fmul <4 x float> %527, %28 ; <<4 x float>>:528 [#uses=1]
1238 fmul <4 x float> %528, %29 ; <<4 x float>>:529 [#uses=1]
1239 fmul <4 x float> %529, %30 ; <<4 x float>>:530 [#uses=1]
1240 fmul <4 x float> %530, %31 ; <<4 x float>>:531 [#uses=1]
1241 fmul <4 x float> %531, %32 ; <<4 x float>>:532 [#uses=1]
1242 fmul <4 x float> %26, %26 ; <<4 x float>>:533 [#uses=1]
1243 fmul <4 x float> %533, %27 ; <<4 x float>>:534 [#uses=1]
1244 fmul <4 x float> %534, %28 ; <<4 x float>>:535 [#uses=1]
1245 fmul <4 x float> %535, %29 ; <<4 x float>>:536 [#uses=1]
1246 fmul <4 x float> %536, %30 ; <<4 x float>>:537 [#uses=1]
1247 fmul <4 x float> %537, %31 ; <<4 x float>>:538 [#uses=1]
1248 fmul <4 x float> %538, %32 ; <<4 x float>>:539 [#uses=1]
1249 fmul <4 x float> %27, %27 ; <<4 x float>>:540 [#uses=1]
1250 fmul <4 x float> %540, %28 ; <<4 x float>>:541 [#uses=1]
1251 fmul <4 x float> %541, %29 ; <<4 x float>>:542 [#uses=1]
1252 fmul <4 x float> %542, %30 ; <<4 x float>>:543 [#uses=1]
1253 fmul <4 x float> %543, %31 ; <<4 x float>>:544 [#uses=1]
1254 fmul <4 x float> %544, %32 ; <<4 x float>>:545 [#uses=1]
1255 fmul <4 x float> %28, %28 ; <<4 x float>>:546 [#uses=1]
1256 fmul <4 x float> %546, %29 ; <<4 x float>>:547 [#uses=1]
1257 fmul <4 x float> %547, %30 ; <<4 x float>>:548 [#uses=1]
1258 fmul <4 x float> %548, %31 ; <<4 x float>>:549 [#uses=1]
1259 fmul <4 x float> %549, %32 ; <<4 x float>>:550 [#uses=1]
1260 fmul <4 x float> %29, %29 ; <<4 x float>>:551 [#uses=1]
1261 fmul <4 x float> %551, %30 ; <<4 x float>>:552 [#uses=1]
1262 fmul <4 x float> %552, %31 ; <<4 x float>>:553 [#uses=1]
1263 fmul <4 x float> %553, %32 ; <<4 x float>>:554 [#uses=1]
1264 fmul <4 x float> %30, %30 ; <<4 x float>>:555 [#uses=1]
1265 fmul <4 x float> %555, %31 ; <<4 x float>>:556 [#uses=1]
1266 fmul <4 x float> %556, %32 ; <<4 x float>>:557 [#uses=1]
1267 fmul <4 x float> %31, %31 ; <<4 x float>>:558 [#uses=1]
1268 fmul <4 x float> %558, %32 ; <<4 x float>>:559 [#uses=1]
1269 fmul <4 x float> %32, %32 ; <<4 x float>>:560 [#uses=1]
1270 fadd <4 x float> %64, %64 ; <<4 x float>>:561 [#uses=1]
1271 fadd <4 x float> %561, %64 ; <<4 x float>>:562 [#uses=1]
1272 fadd <4 x float> %562, %95 ; <<4 x float>>:563 [#uses=1]
1273 fadd <4 x float> %563, %125 ; <<4 x float>>:564 [#uses=1]
1274 fadd <4 x float> %564, %154 ; <<4 x float>>:565 [#uses=1]
1275 fadd <4 x float> %565, %182 ; <<4 x float>>:566 [#uses=1]
1276 fadd <4 x float> %566, %209 ; <<4 x float>>:567 [#uses=1]
1277 fadd <4 x float> %567, %235 ; <<4 x float>>:568 [#uses=1]
1278 fadd <4 x float> %568, %260 ; <<4 x float>>:569 [#uses=1]
1279 fadd <4 x float> %569, %284 ; <<4 x float>>:570 [#uses=1]
1280 fadd <4 x float> %570, %307 ; <<4 x float>>:571 [#uses=1]
1281 fadd <4 x float> %571, %329 ; <<4 x float>>:572 [#uses=1]
1282 fadd <4 x float> %572, %350 ; <<4 x float>>:573 [#uses=1]
1283 fadd <4 x float> %573, %370 ; <<4 x float>>:574 [#uses=1]
1284 fadd <4 x float> %574, %389 ; <<4 x float>>:575 [#uses=1]
1285 fadd <4 x float> %575, %407 ; <<4 x float>>:576 [#uses=1]
1286 fadd <4 x float> %576, %424 ; <<4 x float>>:577 [#uses=1]
1287 fadd <4 x float> %577, %440 ; <<4 x float>>:578 [#uses=1]
1288 fadd <4 x float> %578, %455 ; <<4 x float>>:579 [#uses=1]
1289 fadd <4 x float> %579, %469 ; <<4 x float>>:580 [#uses=1]
1290 fadd <4 x float> %580, %482 ; <<4 x float>>:581 [#uses=1]
1291 fadd <4 x float> %581, %494 ; <<4 x float>>:582 [#uses=1]
1292 fadd <4 x float> %582, %505 ; <<4 x float>>:583 [#uses=1]
1293 fadd <4 x float> %583, %515 ; <<4 x float>>:584 [#uses=1]
1294 fadd <4 x float> %584, %524 ; <<4 x float>>:585 [#uses=1]
1295 fadd <4 x float> %585, %532 ; <<4 x float>>:586 [#uses=1]
1296 fadd <4 x float> %586, %539 ; <<4 x float>>:587 [#uses=1]
1297 fadd <4 x float> %587, %545 ; <<4 x float>>:588 [#uses=1]
1298 fadd <4 x float> %588, %550 ; <<4 x float>>:589 [#uses=1]
1299 fadd <4 x float> %589, %554 ; <<4 x float>>:590 [#uses=1]
1300 fadd <4 x float> %590, %557 ; <<4 x float>>:591 [#uses=1]
1301 fadd <4 x float> %591, %559 ; <<4 x float>>:592 [#uses=1]
1302 fadd <4 x float> %592, %560 ; <<4 x float>>:593 [#uses=1]
1303 store <4 x float> %593, <4 x float>* @0, align 1
1304 ret void
1305 }
None ; RUN: llc < %s -relocation-model=static -realign-stack=1 -mcpu=yonah | FileCheck %s
0 ; RUN: llc < %s -relocation-model=static -mcpu=yonah | FileCheck %s
11
22 ; The double argument is at 4(esp) which is 16-byte aligned, allowing us to
33 ; fold the load into the andpd.
3737
3838 declare void @llvm.dbg.value(metadata, i64, metadata) #1
3939
40 attributes #0 = { nounwind ssp uwtable "fp-contract-model"="standard" "no-frame-pointer-elim" "no-frame-pointer-elim-non-leaf" "realign-stack" "relocation-model"="pic" "ssp-buffers-size"="8" }
40 attributes #0 = { nounwind ssp uwtable "fp-contract-model"="standard" "no-frame-pointer-elim" "no-frame-pointer-elim-non-leaf" "relocation-model"="pic" "ssp-buffers-size"="8" }
4141 attributes #1 = { nounwind readnone }
4242
4343 !llvm.dbg.cu = !{!0}
4040 }
4141 declare i32 @Trace(...) #1
4242
43 attributes #0 = { nounwind ssp uwtable "fp-contract-model"="standard" "no-frame-pointer-elim" "no-frame-pointer-elim-non-leaf" "realign-stack" "relocation-model"="pic" "ssp-buffers-size"="8" }
44 attributes #1 = { "fp-contract-model"="standard" "no-frame-pointer-elim" "no-frame-pointer-elim-non-leaf" "realign-stack" "relocation-model"="pic" "ssp-buffers-size"="8" }
43 attributes #0 = { nounwind ssp uwtable "fp-contract-model"="standard" "no-frame-pointer-elim" "no-frame-pointer-elim-non-leaf" "relocation-model"="pic" "ssp-buffers-size"="8" }
44 attributes #1 = { "fp-contract-model"="standard" "no-frame-pointer-elim" "no-frame-pointer-elim-non-leaf" "relocation-model"="pic" "ssp-buffers-size"="8" }
4545 attributes #2 = { nounwind }
4646
4747 !0 = metadata !{i32 1039}
274274 Options.GuaranteedTailCallOpt = EnableGuaranteedTailCallOpt;
275275 Options.DisableTailCalls = DisableTailCalls;
276276 Options.StackAlignmentOverride = OverrideStackAlignment;
277 Options.RealignStack = EnableRealignStack;
278277 Options.TrapFuncName = TrapFuncName;
279278 Options.PositionIndependentExecutable = EnablePIE;
280279 Options.EnableSegmentedStacks = SegmentedStacks;
120120 cl::desc("Override default stack alignment"),
121121 cl::init(0));
122122
123 static cl::opt
124 EnableRealignStack("realign-stack",
125 cl::desc("Realign stack if needed"),
126 cl::init(true));
127
128123 static cl::opt
129124 TrapFuncName("trap-func", cl::Hidden,
130125 cl::desc("Emit a call to trap function rather than a trap instruction"),
243238 Options.GuaranteedTailCallOpt = EnableGuaranteedTailCallOpt;
244239 Options.DisableTailCalls = DisableTailCalls;
245240 Options.StackAlignmentOverride = OverrideStackAlignment;
246 Options.RealignStack = EnableRealignStack;
247241 Options.TrapFuncName = TrapFuncName;
248242 Options.PositionIndependentExecutable = EnablePIE;
249243 Options.EnableSegmentedStacks = SegmentedStacks;
503503 Options.GuaranteedTailCallOpt = EnableGuaranteedTailCallOpt;
504504 Options.DisableTailCalls = DisableTailCalls;
505505 Options.StackAlignmentOverride = OverrideStackAlignment;
506 Options.RealignStack = EnableRealignStack;
507506 Options.TrapFuncName = TrapFuncName;
508507 Options.PositionIndependentExecutable = EnablePIE;
509508 Options.EnableSegmentedStacks = SegmentedStacks;