Use function attributes to indicate that we don't want to realign the stack.
authorBill Wendling <isanbard@gmail.com>
Thu, 1 Aug 2013 21:42:05 +0000 (21:42 +0000)
committerBill Wendling <isanbard@gmail.com>
Thu, 1 Aug 2013 21:42:05 +0000 (21:42 +0000)
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

15 files changed:
include/llvm/CodeGen/CommandFlags.h
include/llvm/Target/TargetOptions.h
lib/CodeGen/MachineFunction.cpp
lib/Target/ARM/ARMBaseRegisterInfo.cpp
lib/Target/PowerPC/PPCRegisterInfo.cpp
lib/Target/X86/X86RegisterInfo.cpp
test/CodeGen/ARM/alloc-no-stack-realign.ll
test/CodeGen/X86/2006-05-11-InstrSched.ll
test/CodeGen/X86/2008-07-19-movups-spills.ll
test/CodeGen/X86/stack-align.ll
test/Transforms/LoopVectorize/dbg.value.ll
test/Transforms/SimplifyCFG/volatile-phioper.ll
tools/llc/llc.cpp
tools/lto/LTOModule.cpp
tools/opt/opt.cpp

index 22bea34d78d6dbfb3aa835522bf7413f9d7f74a6..0c21e7622bd53d9e0e82387d2279f7fb1c524604 100644 (file)
@@ -181,11 +181,6 @@ OverrideStackAlignment("stack-alignment",
                        cl::desc("Override default stack alignment"),
                        cl::init(0));
 
-cl::opt<bool>
-EnableRealignStack("realign-stack",
-                   cl::desc("Realign stack if needed"),
-                   cl::init(true));
-
 cl::opt<std::string>
 TrapFuncName("trap-func", cl::Hidden,
         cl::desc("Emit a call to trap function rather than a trap instruction"),
index feba3408f8a6234eaaaffc6276b695f9647b54ad..d9c8651e7ed0e7b0ddb7ed5bb51710d8b89f2521 100644 (file)
@@ -48,7 +48,7 @@ namespace llvm {
           UseSoftFloat(false), NoZerosInBSS(false),
           JITEmitDebugInfo(false), JITEmitDebugInfoToDisk(false),
           GuaranteedTailCallOpt(false), DisableTailCalls(false),
-          StackAlignmentOverride(0), RealignStack(true),
+          StackAlignmentOverride(0),
           EnableFastISel(false), PositionIndependentExecutable(false),
           EnableSegmentedStacks(false), UseInitArray(false), TrapFuncName(""),
           FloatABIType(FloatABI::Default), AllowFPOpFusion(FPOpFusion::Standard)
@@ -141,10 +141,6 @@ namespace llvm {
     /// StackAlignmentOverride - Override default stack alignment for target.
     unsigned StackAlignmentOverride;
 
-    /// RealignStack - This flag indicates whether the stack should be
-    /// automatically realigned, if needed.
-    unsigned RealignStack : 1;
-
     /// EnableFastISel - This flag enables fast-path instruction selection
     /// which trades away generated code quality in favor of reducing
     /// compile time.
@@ -213,7 +209,6 @@ inline bool operator==(const TargetOptions &LHS,
     ARE_EQUAL(GuaranteedTailCallOpt) &&
     ARE_EQUAL(DisableTailCalls) &&
     ARE_EQUAL(StackAlignmentOverride) &&
-    ARE_EQUAL(RealignStack) &&
     ARE_EQUAL(EnableFastISel) &&
     ARE_EQUAL(PositionIndependentExecutable) &&
     ARE_EQUAL(EnableSegmentedStacks) &&
index 80cfb5e0234fa478601b2f21f6bce9c67b16b773..0703df09a60e653cbe0ff92653c2fde56da7c851 100644 (file)
@@ -60,7 +60,8 @@ MachineFunction::MachineFunction(const Function *F, const TargetMachine &TM,
     RegInfo = 0;
 
   MFInfo = 0;
-  FrameInfo = new (Allocator) MachineFrameInfo(TM, TM.Options.RealignStack);
+  FrameInfo =
+    new (Allocator) MachineFrameInfo(TM,!F->hasFnAttribute("no-realign-stack"));
 
   if (Fn->getAttributes().hasAttribute(AttributeSet::FunctionIndex,
                                        Attribute::StackAlignment))
index 9274baf1198262d68fb7eb1b57f2651f26e32ad0..58c06e392cf00a3c3713905bf4e1c7bd999da074 100644 (file)
@@ -323,7 +323,7 @@ bool ARMBaseRegisterInfo::canRealignStack(const MachineFunction &MF) const {
   // 1. Dynamic stack realignment is explicitly disabled,
   // 2. This is a Thumb1 function (it's not useful, so we don't bother), or
   // 3. There are VLAs in the function and the base pointer is disabled.
-  if (!MF.getTarget().Options.RealignStack)
+  if (MF.getFunction()->hasFnAttribute("no-realign-stack"))
     return false;
   if (AFI->isThumb1OnlyFunction())
     return false;
index b762a57b9c97cc4c267d0437d299142d66900d5e..adba613d6e9005f1bfef090ffa4a462bc8281660 100644 (file)
@@ -717,7 +717,7 @@ bool PPCRegisterInfo::hasBasePointer(const MachineFunction &MF) const {
 }
 
 bool PPCRegisterInfo::canRealignStack(const MachineFunction &MF) const {
-  if (!MF.getTarget().Options.RealignStack)
+  if (MF.getFunction()->hasFnAttribute("no-realign-stack"))
     return false;
 
   return true;
index c6655f7c444e0b6c6b4488da50d2be1b16a73528..0923310cf31dc313ed4221357f27f5e66aab2396 100644 (file)
@@ -411,10 +411,11 @@ bool X86RegisterInfo::hasBasePointer(const MachineFunction &MF) const {
 }
 
 bool X86RegisterInfo::canRealignStack(const MachineFunction &MF) const {
+  if (MF.getFunction()->hasFnAttribute("no-realign-stack"))
+    return false;
+
   const MachineFrameInfo *MFI = MF.getFrameInfo();
   const MachineRegisterInfo *MRI = &MF.getRegInfo();
-  if (!MF.getTarget().Options.RealignStack)
-    return false;
 
   // Stack realignment requires a frame pointer.  If we already started
   // register allocation with frame pointer elimination, it is too late now.
index 273041dee34e08b4b3665b1b94e930f2938142c5..6e6311d4d34fef9f54d52ebf8819b027f77df3e5 100644 (file)
@@ -1,30 +1,14 @@
-; RUN: llc < %s -mtriple=armv7-apple-ios -O0 -realign-stack=0 | FileCheck %s -check-prefix=NO-REALIGN
-; RUN: llc < %s -mtriple=armv7-apple-ios -O0 | FileCheck %s
+; RUN: llc < %s -mtriple=armv7-apple-ios -O0 | FileCheck %s -check-prefix=NO-REALIGN
+; RUN: llc < %s -mtriple=armv7-apple-ios -O0 | FileCheck %s -check-prefix=REALIGN
 
 ; rdar://12713765
 ; When realign-stack is set to false, make sure we are not creating stack
 ; objects that are assumed to be 64-byte aligned.
 @T3_retval = common global <16 x float> zeroinitializer, align 16
 
-define void @test(<16 x float>* noalias sret %agg.result) nounwind ssp {
+define void @test1(<16 x float>* noalias sret %agg.result) nounwind ssp "no-realign-stack" {
 entry:
-; CHECK: test
-; CHECK: bic sp, sp, #63
-; CHECK: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
-; CHECK: vst1.64
-; CHECK: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
-; CHECK: vst1.64
-; CHECK: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #16
-; CHECK: vst1.64
-; CHECK: vst1.64
-; CHECK: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
-; CHECK: vst1.64
-; CHECK: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
-; CHECK: vst1.64
-; CHECK: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #16
-; CHECK: vst1.64
-; CHECK: vst1.64
-; NO-REALIGN: test
+; NO-REALIGN: test1
 ; NO-REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
 ; NO-REALIGN: vst1.64
 ; NO-REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
@@ -46,3 +30,29 @@ entry:
  store <16 x float> %1, <16 x float>* %agg.result, align 16
  ret void
 }
+
+define void @test2(<16 x float>* noalias sret %agg.result) nounwind ssp {
+entry:
+; REALIGN: test2
+; REALIGN: bic sp, sp, #63
+; REALIGN: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
+; REALIGN: vst1.64
+; REALIGN: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
+; REALIGN: vst1.64
+; REALIGN: orr [[R2:r[0-9]+]], [[R1:r[0-9]+]], #16
+; REALIGN: vst1.64
+; REALIGN: vst1.64
+; REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #48
+; REALIGN: vst1.64
+; REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #32
+; REALIGN: vst1.64
+; REALIGN: add [[R2:r[0-9]+]], [[R1:r[0-9]+]], #16
+; REALIGN: vst1.64
+; REALIGN: vst1.64
+ %retval = alloca <16 x float>, align 16
+ %0 = load <16 x float>* @T3_retval, align 16
+ store <16 x float> %0, <16 x float>* %retval
+ %1 = load <16 x float>* %retval
+ store <16 x float> %1, <16 x float>* %agg.result, align 16
+ ret void
+}
index 6912351d7b7e13fe5187bc98003e6a5386d13fd9..3d0946698500d4032979b9ad3b41b5772fa76708 100644 (file)
@@ -1,5 +1,5 @@
 ; REQUIRES: asserts
-; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -mcpu=penryn -mattr=+sse2 -stats -realign-stack=0 2>&1 | \
+; RUN: llc < %s -march=x86 -mtriple=i386-linux-gnu -mcpu=penryn -mattr=+sse2 -stats 2>&1 | \
 ; RUN:     grep "asm-printer" | grep 35
 
 target datalayout = "e-p:32:32"
index 368af6d8abde6951ebcf4a4a3f40784c1a6564ed..cd86ee188949306f4fe5ea376b74e5e8c004e991 100644 (file)
@@ -1,5 +1,4 @@
-; RUN: llc < %s -mtriple=i686-pc-linux -realign-stack=1 -mattr=sse2 | grep movups | count 33
-; RUN: llc < %s -mtriple=i686-pc-linux -realign-stack=0 -mattr=sse2 | grep movups | count 33
+; RUN: llc < %s -mtriple=i686-pc-linux -mattr=sse2 | FileCheck %s
 ; PR2539
 ; PR8969 - make 32-bit linux have a 16-byte aligned stack
 ; Verify that movups is still generated with an aligned stack for the globals
@@ -40,7 +39,42 @@ external global <4 x float>, align 1         ; <<4 x float>*>:31 [#uses=1]
 
 declare void @abort()
 
-define void @""() {
+define void @test1() {
+; CHECK: test1
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK-NOT: movups
        load <4 x float>* @0, align 1           ; <<4 x float>>:1 [#uses=2]
        load <4 x float>* @1, align 1           ; <<4 x float>>:2 [#uses=3]
        load <4 x float>* @2, align 1           ; <<4 x float>>:3 [#uses=4]
@@ -637,3 +671,636 @@ define void @""() {
        store <4 x float> %593, <4 x float>* @0, align 1
        ret void
 }
+
+define void @test2() "no-realign-stack" {
+; CHECK: test2
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK: movups
+; CHECK-NOT: movups
+       load <4 x float>* @0, align 1
+       load <4 x float>* @1, align 1
+       load <4 x float>* @2, align 1
+       load <4 x float>* @3, align 1
+       load <4 x float>* @4, align 1
+       load <4 x float>* @5, align 1
+       load <4 x float>* @6, align 1
+       load <4 x float>* @7, align 1
+       load <4 x float>* @8, align 1
+       load <4 x float>* @9, align 1
+       load <4 x float>* @10, align 1
+       load <4 x float>* @11, align 1
+       load <4 x float>* @12, align 1
+       load <4 x float>* @13, align 1
+       load <4 x float>* @14, align 1
+       load <4 x float>* @15, align 1
+       load <4 x float>* @16, align 1
+       load <4 x float>* @17, align 1
+       load <4 x float>* @18, align 1
+       load <4 x float>* @19, align 1
+       load <4 x float>* @20, align 1
+       load <4 x float>* @21, align 1
+       load <4 x float>* @22, align 1
+       load <4 x float>* @23, align 1
+       load <4 x float>* @24, align 1
+       load <4 x float>* @25, align 1
+       load <4 x float>* @26, align 1
+       load <4 x float>* @27, align 1
+       load <4 x float>* @28, align 1
+       load <4 x float>* @29, align 1
+       load <4 x float>* @30, align 1
+       load <4 x float>* @31, align 1
+       fmul <4 x float> %1, %1
+       fmul <4 x float> %33, %2
+       fmul <4 x float> %34, %3
+       fmul <4 x float> %35, %4
+       fmul <4 x float> %36, %5
+       fmul <4 x float> %37, %6
+       fmul <4 x float> %38, %7
+       fmul <4 x float> %39, %8
+       fmul <4 x float> %40, %9
+       fmul <4 x float> %41, %10
+       fmul <4 x float> %42, %11               ; <<4 x float>>:43 [#uses=1]
+       fmul <4 x float> %43, %12               ; <<4 x float>>:44 [#uses=1]
+       fmul <4 x float> %44, %13               ; <<4 x float>>:45 [#uses=1]
+       fmul <4 x float> %45, %14               ; <<4 x float>>:46 [#uses=1]
+       fmul <4 x float> %46, %15               ; <<4 x float>>:47 [#uses=1]
+       fmul <4 x float> %47, %16               ; <<4 x float>>:48 [#uses=1]
+       fmul <4 x float> %48, %17               ; <<4 x float>>:49 [#uses=1]
+       fmul <4 x float> %49, %18               ; <<4 x float>>:50 [#uses=1]
+       fmul <4 x float> %50, %19               ; <<4 x float>>:51 [#uses=1]
+       fmul <4 x float> %51, %20               ; <<4 x float>>:52 [#uses=1]
+       fmul <4 x float> %52, %21               ; <<4 x float>>:53 [#uses=1]
+       fmul <4 x float> %53, %22               ; <<4 x float>>:54 [#uses=1]
+       fmul <4 x float> %54, %23               ; <<4 x float>>:55 [#uses=1]
+       fmul <4 x float> %55, %24               ; <<4 x float>>:56 [#uses=1]
+       fmul <4 x float> %56, %25               ; <<4 x float>>:57 [#uses=1]
+       fmul <4 x float> %57, %26               ; <<4 x float>>:58 [#uses=1]
+       fmul <4 x float> %58, %27               ; <<4 x float>>:59 [#uses=1]
+       fmul <4 x float> %59, %28               ; <<4 x float>>:60 [#uses=1]
+       fmul <4 x float> %60, %29               ; <<4 x float>>:61 [#uses=1]
+       fmul <4 x float> %61, %30               ; <<4 x float>>:62 [#uses=1]
+       fmul <4 x float> %62, %31               ; <<4 x float>>:63 [#uses=1]
+       fmul <4 x float> %63, %32               ; <<4 x float>>:64 [#uses=3]
+       fmul <4 x float> %2, %2         ; <<4 x float>>:65 [#uses=1]
+       fmul <4 x float> %65, %3                ; <<4 x float>>:66 [#uses=1]
+       fmul <4 x float> %66, %4                ; <<4 x float>>:67 [#uses=1]
+       fmul <4 x float> %67, %5                ; <<4 x float>>:68 [#uses=1]
+       fmul <4 x float> %68, %6                ; <<4 x float>>:69 [#uses=1]
+       fmul <4 x float> %69, %7                ; <<4 x float>>:70 [#uses=1]
+       fmul <4 x float> %70, %8                ; <<4 x float>>:71 [#uses=1]
+       fmul <4 x float> %71, %9                ; <<4 x float>>:72 [#uses=1]
+       fmul <4 x float> %72, %10               ; <<4 x float>>:73 [#uses=1]
+       fmul <4 x float> %73, %11               ; <<4 x float>>:74 [#uses=1]
+       fmul <4 x float> %74, %12               ; <<4 x float>>:75 [#uses=1]
+       fmul <4 x float> %75, %13               ; <<4 x float>>:76 [#uses=1]
+       fmul <4 x float> %76, %14               ; <<4 x float>>:77 [#uses=1]
+       fmul <4 x float> %77, %15               ; <<4 x float>>:78 [#uses=1]
+       fmul <4 x float> %78, %16               ; <<4 x float>>:79 [#uses=1]
+       fmul <4 x float> %79, %17               ; <<4 x float>>:80 [#uses=1]
+       fmul <4 x float> %80, %18               ; <<4 x float>>:81 [#uses=1]
+       fmul <4 x float> %81, %19               ; <<4 x float>>:82 [#uses=1]
+       fmul <4 x float> %82, %20               ; <<4 x float>>:83 [#uses=1]
+       fmul <4 x float> %83, %21               ; <<4 x float>>:84 [#uses=1]
+       fmul <4 x float> %84, %22               ; <<4 x float>>:85 [#uses=1]
+       fmul <4 x float> %85, %23               ; <<4 x float>>:86 [#uses=1]
+       fmul <4 x float> %86, %24               ; <<4 x float>>:87 [#uses=1]
+       fmul <4 x float> %87, %25               ; <<4 x float>>:88 [#uses=1]
+       fmul <4 x float> %88, %26               ; <<4 x float>>:89 [#uses=1]
+       fmul <4 x float> %89, %27               ; <<4 x float>>:90 [#uses=1]
+       fmul <4 x float> %90, %28               ; <<4 x float>>:91 [#uses=1]
+       fmul <4 x float> %91, %29               ; <<4 x float>>:92 [#uses=1]
+       fmul <4 x float> %92, %30               ; <<4 x float>>:93 [#uses=1]
+       fmul <4 x float> %93, %31               ; <<4 x float>>:94 [#uses=1]
+       fmul <4 x float> %94, %32               ; <<4 x float>>:95 [#uses=1]
+       fmul <4 x float> %3, %3         ; <<4 x float>>:96 [#uses=1]
+       fmul <4 x float> %96, %4                ; <<4 x float>>:97 [#uses=1]
+       fmul <4 x float> %97, %5                ; <<4 x float>>:98 [#uses=1]
+       fmul <4 x float> %98, %6                ; <<4 x float>>:99 [#uses=1]
+       fmul <4 x float> %99, %7                ; <<4 x float>>:100 [#uses=1]
+       fmul <4 x float> %100, %8               ; <<4 x float>>:101 [#uses=1]
+       fmul <4 x float> %101, %9               ; <<4 x float>>:102 [#uses=1]
+       fmul <4 x float> %102, %10              ; <<4 x float>>:103 [#uses=1]
+       fmul <4 x float> %103, %11              ; <<4 x float>>:104 [#uses=1]
+       fmul <4 x float> %104, %12              ; <<4 x float>>:105 [#uses=1]
+       fmul <4 x float> %105, %13              ; <<4 x float>>:106 [#uses=1]
+       fmul <4 x float> %106, %14              ; <<4 x float>>:107 [#uses=1]
+       fmul <4 x float> %107, %15              ; <<4 x float>>:108 [#uses=1]
+       fmul <4 x float> %108, %16              ; <<4 x float>>:109 [#uses=1]
+       fmul <4 x float> %109, %17              ; <<4 x float>>:110 [#uses=1]
+       fmul <4 x float> %110, %18              ; <<4 x float>>:111 [#uses=1]
+       fmul <4 x float> %111, %19              ; <<4 x float>>:112 [#uses=1]
+       fmul <4 x float> %112, %20              ; <<4 x float>>:113 [#uses=1]
+       fmul <4 x float> %113, %21              ; <<4 x float>>:114 [#uses=1]
+       fmul <4 x float> %114, %22              ; <<4 x float>>:115 [#uses=1]
+       fmul <4 x float> %115, %23              ; <<4 x float>>:116 [#uses=1]
+       fmul <4 x float> %116, %24              ; <<4 x float>>:117 [#uses=1]
+       fmul <4 x float> %117, %25              ; <<4 x float>>:118 [#uses=1]
+       fmul <4 x float> %118, %26              ; <<4 x float>>:119 [#uses=1]
+       fmul <4 x float> %119, %27              ; <<4 x float>>:120 [#uses=1]
+       fmul <4 x float> %120, %28              ; <<4 x float>>:121 [#uses=1]
+       fmul <4 x float> %121, %29              ; <<4 x float>>:122 [#uses=1]
+       fmul <4 x float> %122, %30              ; <<4 x float>>:123 [#uses=1]
+       fmul <4 x float> %123, %31              ; <<4 x float>>:124 [#uses=1]
+       fmul <4 x float> %124, %32              ; <<4 x float>>:125 [#uses=1]
+       fmul <4 x float> %4, %4         ; <<4 x float>>:126 [#uses=1]
+       fmul <4 x float> %126, %5               ; <<4 x float>>:127 [#uses=1]
+       fmul <4 x float> %127, %6               ; <<4 x float>>:128 [#uses=1]
+       fmul <4 x float> %128, %7               ; <<4 x float>>:129 [#uses=1]
+       fmul <4 x float> %129, %8               ; <<4 x float>>:130 [#uses=1]
+       fmul <4 x float> %130, %9               ; <<4 x float>>:131 [#uses=1]
+       fmul <4 x float> %131, %10              ; <<4 x float>>:132 [#uses=1]
+       fmul <4 x float> %132, %11              ; <<4 x float>>:133 [#uses=1]
+       fmul <4 x float> %133, %12              ; <<4 x float>>:134 [#uses=1]
+       fmul <4 x float> %134, %13              ; <<4 x float>>:135 [#uses=1]
+       fmul <4 x float> %135, %14              ; <<4 x float>>:136 [#uses=1]
+       fmul <4 x float> %136, %15              ; <<4 x float>>:137 [#uses=1]
+       fmul <4 x float> %137, %16              ; <<4 x float>>:138 [#uses=1]
+       fmul <4 x float> %138, %17              ; <<4 x float>>:139 [#uses=1]
+       fmul <4 x float> %139, %18              ; <<4 x float>>:140 [#uses=1]
+       fmul <4 x float> %140, %19              ; <<4 x float>>:141 [#uses=1]
+       fmul <4 x float> %141, %20              ; <<4 x float>>:142 [#uses=1]
+       fmul <4 x float> %142, %21              ; <<4 x float>>:143 [#uses=1]
+       fmul <4 x float> %143, %22              ; <<4 x float>>:144 [#uses=1]
+       fmul <4 x float> %144, %23              ; <<4 x float>>:145 [#uses=1]
+       fmul <4 x float> %145, %24              ; <<4 x float>>:146 [#uses=1]
+       fmul <4 x float> %146, %25              ; <<4 x float>>:147 [#uses=1]
+       fmul <4 x float> %147, %26              ; <<4 x float>>:148 [#uses=1]
+       fmul <4 x float> %148, %27              ; <<4 x float>>:149 [#uses=1]
+       fmul <4 x float> %149, %28              ; <<4 x float>>:150 [#uses=1]
+       fmul <4 x float> %150, %29              ; <<4 x float>>:151 [#uses=1]
+       fmul <4 x float> %151, %30              ; <<4 x float>>:152 [#uses=1]
+       fmul <4 x float> %152, %31              ; <<4 x float>>:153 [#uses=1]
+       fmul <4 x float> %153, %32              ; <<4 x float>>:154 [#uses=1]
+       fmul <4 x float> %5, %5         ; <<4 x float>>:155 [#uses=1]
+       fmul <4 x float> %155, %6               ; <<4 x float>>:156 [#uses=1]
+       fmul <4 x float> %156, %7               ; <<4 x float>>:157 [#uses=1]
+       fmul <4 x float> %157, %8               ; <<4 x float>>:158 [#uses=1]
+       fmul <4 x float> %158, %9               ; <<4 x float>>:159 [#uses=1]
+       fmul <4 x float> %159, %10              ; <<4 x float>>:160 [#uses=1]
+       fmul <4 x float> %160, %11              ; <<4 x float>>:161 [#uses=1]
+       fmul <4 x float> %161, %12              ; <<4 x float>>:162 [#uses=1]
+       fmul <4 x float> %162, %13              ; <<4 x float>>:163 [#uses=1]
+       fmul <4 x float> %163, %14              ; <<4 x float>>:164 [#uses=1]
+       fmul <4 x float> %164, %15              ; <<4 x float>>:165 [#uses=1]
+       fmul <4 x float> %165, %16              ; <<4 x float>>:166 [#uses=1]
+       fmul <4 x float> %166, %17              ; <<4 x float>>:167 [#uses=1]
+       fmul <4 x float> %167, %18              ; <<4 x float>>:168 [#uses=1]
+       fmul <4 x float> %168, %19              ; <<4 x float>>:169 [#uses=1]
+       fmul <4 x float> %169, %20              ; <<4 x float>>:170 [#uses=1]
+       fmul <4 x float> %170, %21              ; <<4 x float>>:171 [#uses=1]
+       fmul <4 x float> %171, %22              ; <<4 x float>>:172 [#uses=1]
+       fmul <4 x float> %172, %23              ; <<4 x float>>:173 [#uses=1]
+       fmul <4 x float> %173, %24              ; <<4 x float>>:174 [#uses=1]
+       fmul <4 x float> %174, %25              ; <<4 x float>>:175 [#uses=1]
+       fmul <4 x float> %175, %26              ; <<4 x float>>:176 [#uses=1]
+       fmul <4 x float> %176, %27              ; <<4 x float>>:177 [#uses=1]
+       fmul <4 x float> %177, %28              ; <<4 x float>>:178 [#uses=1]
+       fmul <4 x float> %178, %29              ; <<4 x float>>:179 [#uses=1]
+       fmul <4 x float> %179, %30              ; <<4 x float>>:180 [#uses=1]
+       fmul <4 x float> %180, %31              ; <<4 x float>>:181 [#uses=1]
+       fmul <4 x float> %181, %32              ; <<4 x float>>:182 [#uses=1]
+       fmul <4 x float> %6, %6         ; <<4 x float>>:183 [#uses=1]
+       fmul <4 x float> %183, %7               ; <<4 x float>>:184 [#uses=1]
+       fmul <4 x float> %184, %8               ; <<4 x float>>:185 [#uses=1]
+       fmul <4 x float> %185, %9               ; <<4 x float>>:186 [#uses=1]
+       fmul <4 x float> %186, %10              ; <<4 x float>>:187 [#uses=1]
+       fmul <4 x float> %187, %11              ; <<4 x float>>:188 [#uses=1]
+       fmul <4 x float> %188, %12              ; <<4 x float>>:189 [#uses=1]
+       fmul <4 x float> %189, %13              ; <<4 x float>>:190 [#uses=1]
+       fmul <4 x float> %190, %14              ; <<4 x float>>:191 [#uses=1]
+       fmul <4 x float> %191, %15              ; <<4 x float>>:192 [#uses=1]
+       fmul <4 x float> %192, %16              ; <<4 x float>>:193 [#uses=1]
+       fmul <4 x float> %193, %17              ; <<4 x float>>:194 [#uses=1]
+       fmul <4 x float> %194, %18              ; <<4 x float>>:195 [#uses=1]
+       fmul <4 x float> %195, %19              ; <<4 x float>>:196 [#uses=1]
+       fmul <4 x float> %196, %20              ; <<4 x float>>:197 [#uses=1]
+       fmul <4 x float> %197, %21              ; <<4 x float>>:198 [#uses=1]
+       fmul <4 x float> %198, %22              ; <<4 x float>>:199 [#uses=1]
+       fmul <4 x float> %199, %23              ; <<4 x float>>:200 [#uses=1]
+       fmul <4 x float> %200, %24              ; <<4 x float>>:201 [#uses=1]
+       fmul <4 x float> %201, %25              ; <<4 x float>>:202 [#uses=1]
+       fmul <4 x float> %202, %26              ; <<4 x float>>:203 [#uses=1]
+       fmul <4 x float> %203, %27              ; <<4 x float>>:204 [#uses=1]
+       fmul <4 x float> %204, %28              ; <<4 x float>>:205 [#uses=1]
+       fmul <4 x float> %205, %29              ; <<4 x float>>:206 [#uses=1]
+       fmul <4 x float> %206, %30              ; <<4 x float>>:207 [#uses=1]
+       fmul <4 x float> %207, %31              ; <<4 x float>>:208 [#uses=1]
+       fmul <4 x float> %208, %32              ; <<4 x float>>:209 [#uses=1]
+       fmul <4 x float> %7, %7         ; <<4 x float>>:210 [#uses=1]
+       fmul <4 x float> %210, %8               ; <<4 x float>>:211 [#uses=1]
+       fmul <4 x float> %211, %9               ; <<4 x float>>:212 [#uses=1]
+       fmul <4 x float> %212, %10              ; <<4 x float>>:213 [#uses=1]
+       fmul <4 x float> %213, %11              ; <<4 x float>>:214 [#uses=1]
+       fmul <4 x float> %214, %12              ; <<4 x float>>:215 [#uses=1]
+       fmul <4 x float> %215, %13              ; <<4 x float>>:216 [#uses=1]
+       fmul <4 x float> %216, %14              ; <<4 x float>>:217 [#uses=1]
+       fmul <4 x float> %217, %15              ; <<4 x float>>:218 [#uses=1]
+       fmul <4 x float> %218, %16              ; <<4 x float>>:219 [#uses=1]
+       fmul <4 x float> %219, %17              ; <<4 x float>>:220 [#uses=1]
+       fmul <4 x float> %220, %18              ; <<4 x float>>:221 [#uses=1]
+       fmul <4 x float> %221, %19              ; <<4 x float>>:222 [#uses=1]
+       fmul <4 x float> %222, %20              ; <<4 x float>>:223 [#uses=1]
+       fmul <4 x float> %223, %21              ; <<4 x float>>:224 [#uses=1]
+       fmul <4 x float> %224, %22              ; <<4 x float>>:225 [#uses=1]
+       fmul <4 x float> %225, %23              ; <<4 x float>>:226 [#uses=1]
+       fmul <4 x float> %226, %24              ; <<4 x float>>:227 [#uses=1]
+       fmul <4 x float> %227, %25              ; <<4 x float>>:228 [#uses=1]
+       fmul <4 x float> %228, %26              ; <<4 x float>>:229 [#uses=1]
+       fmul <4 x float> %229, %27              ; <<4 x float>>:230 [#uses=1]
+       fmul <4 x float> %230, %28              ; <<4 x float>>:231 [#uses=1]
+       fmul <4 x float> %231, %29              ; <<4 x float>>:232 [#uses=1]
+       fmul <4 x float> %232, %30              ; <<4 x float>>:233 [#uses=1]
+       fmul <4 x float> %233, %31              ; <<4 x float>>:234 [#uses=1]
+       fmul <4 x float> %234, %32              ; <<4 x float>>:235 [#uses=1]
+       fmul <4 x float> %8, %8         ; <<4 x float>>:236 [#uses=1]
+       fmul <4 x float> %236, %9               ; <<4 x float>>:237 [#uses=1]
+       fmul <4 x float> %237, %10              ; <<4 x float>>:238 [#uses=1]
+       fmul <4 x float> %238, %11              ; <<4 x float>>:239 [#uses=1]
+       fmul <4 x float> %239, %12              ; <<4 x float>>:240 [#uses=1]
+       fmul <4 x float> %240, %13              ; <<4 x float>>:241 [#uses=1]
+       fmul <4 x float> %241, %14              ; <<4 x float>>:242 [#uses=1]
+       fmul <4 x float> %242, %15              ; <<4 x float>>:243 [#uses=1]
+       fmul <4 x float> %243, %16              ; <<4 x float>>:244 [#uses=1]
+       fmul <4 x float> %244, %17              ; <<4 x float>>:245 [#uses=1]
+       fmul <4 x float> %245, %18              ; <<4 x float>>:246 [#uses=1]
+       fmul <4 x float> %246, %19              ; <<4 x float>>:247 [#uses=1]
+       fmul <4 x float> %247, %20              ; <<4 x float>>:248 [#uses=1]
+       fmul <4 x float> %248, %21              ; <<4 x float>>:249 [#uses=1]
+       fmul <4 x float> %249, %22              ; <<4 x float>>:250 [#uses=1]
+       fmul <4 x float> %250, %23              ; <<4 x float>>:251 [#uses=1]
+       fmul <4 x float> %251, %24              ; <<4 x float>>:252 [#uses=1]
+       fmul <4 x float> %252, %25              ; <<4 x float>>:253 [#uses=1]
+       fmul <4 x float> %253, %26              ; <<4 x float>>:254 [#uses=1]
+       fmul <4 x float> %254, %27              ; <<4 x float>>:255 [#uses=1]
+       fmul <4 x float> %255, %28              ; <<4 x float>>:256 [#uses=1]
+       fmul <4 x float> %256, %29              ; <<4 x float>>:257 [#uses=1]
+       fmul <4 x float> %257, %30              ; <<4 x float>>:258 [#uses=1]
+       fmul <4 x float> %258, %31              ; <<4 x float>>:259 [#uses=1]
+       fmul <4 x float> %259, %32              ; <<4 x float>>:260 [#uses=1]
+       fmul <4 x float> %9, %9         ; <<4 x float>>:261 [#uses=1]
+       fmul <4 x float> %261, %10              ; <<4 x float>>:262 [#uses=1]
+       fmul <4 x float> %262, %11              ; <<4 x float>>:263 [#uses=1]
+       fmul <4 x float> %263, %12              ; <<4 x float>>:264 [#uses=1]
+       fmul <4 x float> %264, %13              ; <<4 x float>>:265 [#uses=1]
+       fmul <4 x float> %265, %14              ; <<4 x float>>:266 [#uses=1]
+       fmul <4 x float> %266, %15              ; <<4 x float>>:267 [#uses=1]
+       fmul <4 x float> %267, %16              ; <<4 x float>>:268 [#uses=1]
+       fmul <4 x float> %268, %17              ; <<4 x float>>:269 [#uses=1]
+       fmul <4 x float> %269, %18              ; <<4 x float>>:270 [#uses=1]
+       fmul <4 x float> %270, %19              ; <<4 x float>>:271 [#uses=1]
+       fmul <4 x float> %271, %20              ; <<4 x float>>:272 [#uses=1]
+       fmul <4 x float> %272, %21              ; <<4 x float>>:273 [#uses=1]
+       fmul <4 x float> %273, %22              ; <<4 x float>>:274 [#uses=1]
+       fmul <4 x float> %274, %23              ; <<4 x float>>:275 [#uses=1]
+       fmul <4 x float> %275, %24              ; <<4 x float>>:276 [#uses=1]
+       fmul <4 x float> %276, %25              ; <<4 x float>>:277 [#uses=1]
+       fmul <4 x float> %277, %26              ; <<4 x float>>:278 [#uses=1]
+       fmul <4 x float> %278, %27              ; <<4 x float>>:279 [#uses=1]
+       fmul <4 x float> %279, %28              ; <<4 x float>>:280 [#uses=1]
+       fmul <4 x float> %280, %29              ; <<4 x float>>:281 [#uses=1]
+       fmul <4 x float> %281, %30              ; <<4 x float>>:282 [#uses=1]
+       fmul <4 x float> %282, %31              ; <<4 x float>>:283 [#uses=1]
+       fmul <4 x float> %283, %32              ; <<4 x float>>:284 [#uses=1]
+       fmul <4 x float> %10, %10               ; <<4 x float>>:285 [#uses=1]
+       fmul <4 x float> %285, %11              ; <<4 x float>>:286 [#uses=1]
+       fmul <4 x float> %286, %12              ; <<4 x float>>:287 [#uses=1]
+       fmul <4 x float> %287, %13              ; <<4 x float>>:288 [#uses=1]
+       fmul <4 x float> %288, %14              ; <<4 x float>>:289 [#uses=1]
+       fmul <4 x float> %289, %15              ; <<4 x float>>:290 [#uses=1]
+       fmul <4 x float> %290, %16              ; <<4 x float>>:291 [#uses=1]
+       fmul <4 x float> %291, %17              ; <<4 x float>>:292 [#uses=1]
+       fmul <4 x float> %292, %18              ; <<4 x float>>:293 [#uses=1]
+       fmul <4 x float> %293, %19              ; <<4 x float>>:294 [#uses=1]
+       fmul <4 x float> %294, %20              ; <<4 x float>>:295 [#uses=1]
+       fmul <4 x float> %295, %21              ; <<4 x float>>:296 [#uses=1]
+       fmul <4 x float> %296, %22              ; <<4 x float>>:297 [#uses=1]
+       fmul <4 x float> %297, %23              ; <<4 x float>>:298 [#uses=1]
+       fmul <4 x float> %298, %24              ; <<4 x float>>:299 [#uses=1]
+       fmul <4 x float> %299, %25              ; <<4 x float>>:300 [#uses=1]
+       fmul <4 x float> %300, %26              ; <<4 x float>>:301 [#uses=1]
+       fmul <4 x float> %301, %27              ; <<4 x float>>:302 [#uses=1]
+       fmul <4 x float> %302, %28              ; <<4 x float>>:303 [#uses=1]
+       fmul <4 x float> %303, %29              ; <<4 x float>>:304 [#uses=1]
+       fmul <4 x float> %304, %30              ; <<4 x float>>:305 [#uses=1]
+       fmul <4 x float> %305, %31              ; <<4 x float>>:306 [#uses=1]
+       fmul <4 x float> %306, %32              ; <<4 x float>>:307 [#uses=1]
+       fmul <4 x float> %11, %11               ; <<4 x float>>:308 [#uses=1]
+       fmul <4 x float> %308, %12              ; <<4 x float>>:309 [#uses=1]
+       fmul <4 x float> %309, %13              ; <<4 x float>>:310 [#uses=1]
+       fmul <4 x float> %310, %14              ; <<4 x float>>:311 [#uses=1]
+       fmul <4 x float> %311, %15              ; <<4 x float>>:312 [#uses=1]
+       fmul <4 x float> %312, %16              ; <<4 x float>>:313 [#uses=1]
+       fmul <4 x float> %313, %17              ; <<4 x float>>:314 [#uses=1]
+       fmul <4 x float> %314, %18              ; <<4 x float>>:315 [#uses=1]
+       fmul <4 x float> %315, %19              ; <<4 x float>>:316 [#uses=1]
+       fmul <4 x float> %316, %20              ; <<4 x float>>:317 [#uses=1]
+       fmul <4 x float> %317, %21              ; <<4 x float>>:318 [#uses=1]
+       fmul <4 x float> %318, %22              ; <<4 x float>>:319 [#uses=1]
+       fmul <4 x float> %319, %23              ; <<4 x float>>:320 [#uses=1]
+       fmul <4 x float> %320, %24              ; <<4 x float>>:321 [#uses=1]
+       fmul <4 x float> %321, %25              ; <<4 x float>>:322 [#uses=1]
+       fmul <4 x float> %322, %26              ; <<4 x float>>:323 [#uses=1]
+       fmul <4 x float> %323, %27              ; <<4 x float>>:324 [#uses=1]
+       fmul <4 x float> %324, %28              ; <<4 x float>>:325 [#uses=1]
+       fmul <4 x float> %325, %29              ; <<4 x float>>:326 [#uses=1]
+       fmul <4 x float> %326, %30              ; <<4 x float>>:327 [#uses=1]
+       fmul <4 x float> %327, %31              ; <<4 x float>>:328 [#uses=1]
+       fmul <4 x float> %328, %32              ; <<4 x float>>:329 [#uses=1]
+       fmul <4 x float> %12, %12               ; <<4 x float>>:330 [#uses=1]
+       fmul <4 x float> %330, %13              ; <<4 x float>>:331 [#uses=1]
+       fmul <4 x float> %331, %14              ; <<4 x float>>:332 [#uses=1]
+       fmul <4 x float> %332, %15              ; <<4 x float>>:333 [#uses=1]
+       fmul <4 x float> %333, %16              ; <<4 x float>>:334 [#uses=1]
+       fmul <4 x float> %334, %17              ; <<4 x float>>:335 [#uses=1]
+       fmul <4 x float> %335, %18              ; <<4 x float>>:336 [#uses=1]
+       fmul <4 x float> %336, %19              ; <<4 x float>>:337 [#uses=1]
+       fmul <4 x float> %337, %20              ; <<4 x float>>:338 [#uses=1]
+       fmul <4 x float> %338, %21              ; <<4 x float>>:339 [#uses=1]
+       fmul <4 x float> %339, %22              ; <<4 x float>>:340 [#uses=1]
+       fmul <4 x float> %340, %23              ; <<4 x float>>:341 [#uses=1]
+       fmul <4 x float> %341, %24              ; <<4 x float>>:342 [#uses=1]
+       fmul <4 x float> %342, %25              ; <<4 x float>>:343 [#uses=1]
+       fmul <4 x float> %343, %26              ; <<4 x float>>:344 [#uses=1]
+       fmul <4 x float> %344, %27              ; <<4 x float>>:345 [#uses=1]
+       fmul <4 x float> %345, %28              ; <<4 x float>>:346 [#uses=1]
+       fmul <4 x float> %346, %29              ; <<4 x float>>:347 [#uses=1]
+       fmul <4 x float> %347, %30              ; <<4 x float>>:348 [#uses=1]
+       fmul <4 x float> %348, %31              ; <<4 x float>>:349 [#uses=1]
+       fmul <4 x float> %349, %32              ; <<4 x float>>:350 [#uses=1]
+       fmul <4 x float> %13, %13               ; <<4 x float>>:351 [#uses=1]
+       fmul <4 x float> %351, %14              ; <<4 x float>>:352 [#uses=1]
+       fmul <4 x float> %352, %15              ; <<4 x float>>:353 [#uses=1]
+       fmul <4 x float> %353, %16              ; <<4 x float>>:354 [#uses=1]
+       fmul <4 x float> %354, %17              ; <<4 x float>>:355 [#uses=1]
+       fmul <4 x float> %355, %18              ; <<4 x float>>:356 [#uses=1]
+       fmul <4 x float> %356, %19              ; <<4 x float>>:357 [#uses=1]
+       fmul <4 x float> %357, %20              ; <<4 x float>>:358 [#uses=1]
+       fmul <4 x float> %358, %21              ; <<4 x float>>:359 [#uses=1]
+       fmul <4 x float> %359, %22              ; <<4 x float>>:360 [#uses=1]
+       fmul <4 x float> %360, %23              ; <<4 x float>>:361 [#uses=1]
+       fmul <4 x float> %361, %24              ; <<4 x float>>:362 [#uses=1]
+       fmul <4 x float> %362, %25              ; <<4 x float>>:363 [#uses=1]
+       fmul <4 x float> %363, %26              ; <<4 x float>>:364 [#uses=1]
+       fmul <4 x float> %364, %27              ; <<4 x float>>:365 [#uses=1]
+       fmul <4 x float> %365, %28              ; <<4 x float>>:366 [#uses=1]
+       fmul <4 x float> %366, %29              ; <<4 x float>>:367 [#uses=1]
+       fmul <4 x float> %367, %30              ; <<4 x float>>:368 [#uses=1]
+       fmul <4 x float> %368, %31              ; <<4 x float>>:369 [#uses=1]
+       fmul <4 x float> %369, %32              ; <<4 x float>>:370 [#uses=1]
+       fmul <4 x float> %14, %14               ; <<4 x float>>:371 [#uses=1]
+       fmul <4 x float> %371, %15              ; <<4 x float>>:372 [#uses=1]
+       fmul <4 x float> %372, %16              ; <<4 x float>>:373 [#uses=1]
+       fmul <4 x float> %373, %17              ; <<4 x float>>:374 [#uses=1]
+       fmul <4 x float> %374, %18              ; <<4 x float>>:375 [#uses=1]
+       fmul <4 x float> %375, %19              ; <<4 x float>>:376 [#uses=1]
+       fmul <4 x float> %376, %20              ; <<4 x float>>:377 [#uses=1]
+       fmul <4 x float> %377, %21              ; <<4 x float>>:378 [#uses=1]
+       fmul <4 x float> %378, %22              ; <<4 x float>>:379 [#uses=1]
+       fmul <4 x float> %379, %23              ; <<4 x float>>:380 [#uses=1]
+       fmul <4 x float> %380, %24              ; <<4 x float>>:381 [#uses=1]
+       fmul <4 x float> %381, %25              ; <<4 x float>>:382 [#uses=1]
+       fmul <4 x float> %382, %26              ; <<4 x float>>:383 [#uses=1]
+       fmul <4 x float> %383, %27              ; <<4 x float>>:384 [#uses=1]
+       fmul <4 x float> %384, %28              ; <<4 x float>>:385 [#uses=1]
+       fmul <4 x float> %385, %29              ; <<4 x float>>:386 [#uses=1]
+       fmul <4 x float> %386, %30              ; <<4 x float>>:387 [#uses=1]
+       fmul <4 x float> %387, %31              ; <<4 x float>>:388 [#uses=1]
+       fmul <4 x float> %388, %32              ; <<4 x float>>:389 [#uses=1]
+       fmul <4 x float> %15, %15               ; <<4 x float>>:390 [#uses=1]
+       fmul <4 x float> %390, %16              ; <<4 x float>>:391 [#uses=1]
+       fmul <4 x float> %391, %17              ; <<4 x float>>:392 [#uses=1]
+       fmul <4 x float> %392, %18              ; <<4 x float>>:393 [#uses=1]
+       fmul <4 x float> %393, %19              ; <<4 x float>>:394 [#uses=1]
+       fmul <4 x float> %394, %20              ; <<4 x float>>:395 [#uses=1]
+       fmul <4 x float> %395, %21              ; <<4 x float>>:396 [#uses=1]
+       fmul <4 x float> %396, %22              ; <<4 x float>>:397 [#uses=1]
+       fmul <4 x float> %397, %23              ; <<4 x float>>:398 [#uses=1]
+       fmul <4 x float> %398, %24              ; <<4 x float>>:399 [#uses=1]
+       fmul <4 x float> %399, %25              ; <<4 x float>>:400 [#uses=1]
+       fmul <4 x float> %400, %26              ; <<4 x float>>:401 [#uses=1]
+       fmul <4 x float> %401, %27              ; <<4 x float>>:402 [#uses=1]
+       fmul <4 x float> %402, %28              ; <<4 x float>>:403 [#uses=1]
+       fmul <4 x float> %403, %29              ; <<4 x float>>:404 [#uses=1]
+       fmul <4 x float> %404, %30              ; <<4 x float>>:405 [#uses=1]
+       fmul <4 x float> %405, %31              ; <<4 x float>>:406 [#uses=1]
+       fmul <4 x float> %406, %32              ; <<4 x float>>:407 [#uses=1]
+       fmul <4 x float> %16, %16               ; <<4 x float>>:408 [#uses=1]
+       fmul <4 x float> %408, %17              ; <<4 x float>>:409 [#uses=1]
+       fmul <4 x float> %409, %18              ; <<4 x float>>:410 [#uses=1]
+       fmul <4 x float> %410, %19              ; <<4 x float>>:411 [#uses=1]
+       fmul <4 x float> %411, %20              ; <<4 x float>>:412 [#uses=1]
+       fmul <4 x float> %412, %21              ; <<4 x float>>:413 [#uses=1]
+       fmul <4 x float> %413, %22              ; <<4 x float>>:414 [#uses=1]
+       fmul <4 x float> %414, %23              ; <<4 x float>>:415 [#uses=1]
+       fmul <4 x float> %415, %24              ; <<4 x float>>:416 [#uses=1]
+       fmul <4 x float> %416, %25              ; <<4 x float>>:417 [#uses=1]
+       fmul <4 x float> %417, %26              ; <<4 x float>>:418 [#uses=1]
+       fmul <4 x float> %418, %27              ; <<4 x float>>:419 [#uses=1]
+       fmul <4 x float> %419, %28              ; <<4 x float>>:420 [#uses=1]
+       fmul <4 x float> %420, %29              ; <<4 x float>>:421 [#uses=1]
+       fmul <4 x float> %421, %30              ; <<4 x float>>:422 [#uses=1]
+       fmul <4 x float> %422, %31              ; <<4 x float>>:423 [#uses=1]
+       fmul <4 x float> %423, %32              ; <<4 x float>>:424 [#uses=1]
+       fmul <4 x float> %17, %17               ; <<4 x float>>:425 [#uses=1]
+       fmul <4 x float> %425, %18              ; <<4 x float>>:426 [#uses=1]
+       fmul <4 x float> %426, %19              ; <<4 x float>>:427 [#uses=1]
+       fmul <4 x float> %427, %20              ; <<4 x float>>:428 [#uses=1]
+       fmul <4 x float> %428, %21              ; <<4 x float>>:429 [#uses=1]
+       fmul <4 x float> %429, %22              ; <<4 x float>>:430 [#uses=1]
+       fmul <4 x float> %430, %23              ; <<4 x float>>:431 [#uses=1]
+       fmul <4 x float> %431, %24              ; <<4 x float>>:432 [#uses=1]
+       fmul <4 x float> %432, %25              ; <<4 x float>>:433 [#uses=1]
+       fmul <4 x float> %433, %26              ; <<4 x float>>:434 [#uses=1]
+       fmul <4 x float> %434, %27              ; <<4 x float>>:435 [#uses=1]
+       fmul <4 x float> %435, %28              ; <<4 x float>>:436 [#uses=1]
+       fmul <4 x float> %436, %29              ; <<4 x float>>:437 [#uses=1]
+       fmul <4 x float> %437, %30              ; <<4 x float>>:438 [#uses=1]
+       fmul <4 x float> %438, %31              ; <<4 x float>>:439 [#uses=1]
+       fmul <4 x float> %439, %32              ; <<4 x float>>:440 [#uses=1]
+       fmul <4 x float> %18, %18               ; <<4 x float>>:441 [#uses=1]
+       fmul <4 x float> %441, %19              ; <<4 x float>>:442 [#uses=1]
+       fmul <4 x float> %442, %20              ; <<4 x float>>:443 [#uses=1]
+       fmul <4 x float> %443, %21              ; <<4 x float>>:444 [#uses=1]
+       fmul <4 x float> %444, %22              ; <<4 x float>>:445 [#uses=1]
+       fmul <4 x float> %445, %23              ; <<4 x float>>:446 [#uses=1]
+       fmul <4 x float> %446, %24              ; <<4 x float>>:447 [#uses=1]
+       fmul <4 x float> %447, %25              ; <<4 x float>>:448 [#uses=1]
+       fmul <4 x float> %448, %26              ; <<4 x float>>:449 [#uses=1]
+       fmul <4 x float> %449, %27              ; <<4 x float>>:450 [#uses=1]
+       fmul <4 x float> %450, %28              ; <<4 x float>>:451 [#uses=1]
+       fmul <4 x float> %451, %29              ; <<4 x float>>:452 [#uses=1]
+       fmul <4 x float> %452, %30              ; <<4 x float>>:453 [#uses=1]
+       fmul <4 x float> %453, %31              ; <<4 x float>>:454 [#uses=1]
+       fmul <4 x float> %454, %32              ; <<4 x float>>:455 [#uses=1]
+       fmul <4 x float> %19, %19               ; <<4 x float>>:456 [#uses=1]
+       fmul <4 x float> %456, %20              ; <<4 x float>>:457 [#uses=1]
+       fmul <4 x float> %457, %21              ; <<4 x float>>:458 [#uses=1]
+       fmul <4 x float> %458, %22              ; <<4 x float>>:459 [#uses=1]
+       fmul <4 x float> %459, %23              ; <<4 x float>>:460 [#uses=1]
+       fmul <4 x float> %460, %24              ; <<4 x float>>:461 [#uses=1]
+       fmul <4 x float> %461, %25              ; <<4 x float>>:462 [#uses=1]
+       fmul <4 x float> %462, %26              ; <<4 x float>>:463 [#uses=1]
+       fmul <4 x float> %463, %27              ; <<4 x float>>:464 [#uses=1]
+       fmul <4 x float> %464, %28              ; <<4 x float>>:465 [#uses=1]
+       fmul <4 x float> %465, %29              ; <<4 x float>>:466 [#uses=1]
+       fmul <4 x float> %466, %30              ; <<4 x float>>:467 [#uses=1]
+       fmul <4 x float> %467, %31              ; <<4 x float>>:468 [#uses=1]
+       fmul <4 x float> %468, %32              ; <<4 x float>>:469 [#uses=1]
+       fmul <4 x float> %20, %20               ; <<4 x float>>:470 [#uses=1]
+       fmul <4 x float> %470, %21              ; <<4 x float>>:471 [#uses=1]
+       fmul <4 x float> %471, %22              ; <<4 x float>>:472 [#uses=1]
+       fmul <4 x float> %472, %23              ; <<4 x float>>:473 [#uses=1]
+       fmul <4 x float> %473, %24              ; <<4 x float>>:474 [#uses=1]
+       fmul <4 x float> %474, %25              ; <<4 x float>>:475 [#uses=1]
+       fmul <4 x float> %475, %26              ; <<4 x float>>:476 [#uses=1]
+       fmul <4 x float> %476, %27              ; <<4 x float>>:477 [#uses=1]
+       fmul <4 x float> %477, %28              ; <<4 x float>>:478 [#uses=1]
+       fmul <4 x float> %478, %29              ; <<4 x float>>:479 [#uses=1]
+       fmul <4 x float> %479, %30              ; <<4 x float>>:480 [#uses=1]
+       fmul <4 x float> %480, %31              ; <<4 x float>>:481 [#uses=1]
+       fmul <4 x float> %481, %32              ; <<4 x float>>:482 [#uses=1]
+       fmul <4 x float> %21, %21               ; <<4 x float>>:483 [#uses=1]
+       fmul <4 x float> %483, %22              ; <<4 x float>>:484 [#uses=1]
+       fmul <4 x float> %484, %23              ; <<4 x float>>:485 [#uses=1]
+       fmul <4 x float> %485, %24              ; <<4 x float>>:486 [#uses=1]
+       fmul <4 x float> %486, %25              ; <<4 x float>>:487 [#uses=1]
+       fmul <4 x float> %487, %26              ; <<4 x float>>:488 [#uses=1]
+       fmul <4 x float> %488, %27              ; <<4 x float>>:489 [#uses=1]
+       fmul <4 x float> %489, %28              ; <<4 x float>>:490 [#uses=1]
+       fmul <4 x float> %490, %29              ; <<4 x float>>:491 [#uses=1]
+       fmul <4 x float> %491, %30              ; <<4 x float>>:492 [#uses=1]
+       fmul <4 x float> %492, %31              ; <<4 x float>>:493 [#uses=1]
+       fmul <4 x float> %493, %32              ; <<4 x float>>:494 [#uses=1]
+       fmul <4 x float> %22, %22               ; <<4 x float>>:495 [#uses=1]
+       fmul <4 x float> %495, %23              ; <<4 x float>>:496 [#uses=1]
+       fmul <4 x float> %496, %24              ; <<4 x float>>:497 [#uses=1]
+       fmul <4 x float> %497, %25              ; <<4 x float>>:498 [#uses=1]
+       fmul <4 x float> %498, %26              ; <<4 x float>>:499 [#uses=1]
+       fmul <4 x float> %499, %27              ; <<4 x float>>:500 [#uses=1]
+       fmul <4 x float> %500, %28              ; <<4 x float>>:501 [#uses=1]
+       fmul <4 x float> %501, %29              ; <<4 x float>>:502 [#uses=1]
+       fmul <4 x float> %502, %30              ; <<4 x float>>:503 [#uses=1]
+       fmul <4 x float> %503, %31              ; <<4 x float>>:504 [#uses=1]
+       fmul <4 x float> %504, %32              ; <<4 x float>>:505 [#uses=1]
+       fmul <4 x float> %23, %23               ; <<4 x float>>:506 [#uses=1]
+       fmul <4 x float> %506, %24              ; <<4 x float>>:507 [#uses=1]
+       fmul <4 x float> %507, %25              ; <<4 x float>>:508 [#uses=1]
+       fmul <4 x float> %508, %26              ; <<4 x float>>:509 [#uses=1]
+       fmul <4 x float> %509, %27              ; <<4 x float>>:510 [#uses=1]
+       fmul <4 x float> %510, %28              ; <<4 x float>>:511 [#uses=1]
+       fmul <4 x float> %511, %29              ; <<4 x float>>:512 [#uses=1]
+       fmul <4 x float> %512, %30              ; <<4 x float>>:513 [#uses=1]
+       fmul <4 x float> %513, %31              ; <<4 x float>>:514 [#uses=1]
+       fmul <4 x float> %514, %32              ; <<4 x float>>:515 [#uses=1]
+       fmul <4 x float> %24, %24               ; <<4 x float>>:516 [#uses=1]
+       fmul <4 x float> %516, %25              ; <<4 x float>>:517 [#uses=1]
+       fmul <4 x float> %517, %26              ; <<4 x float>>:518 [#uses=1]
+       fmul <4 x float> %518, %27              ; <<4 x float>>:519 [#uses=1]
+       fmul <4 x float> %519, %28              ; <<4 x float>>:520 [#uses=1]
+       fmul <4 x float> %520, %29              ; <<4 x float>>:521 [#uses=1]
+       fmul <4 x float> %521, %30              ; <<4 x float>>:522 [#uses=1]
+       fmul <4 x float> %522, %31              ; <<4 x float>>:523 [#uses=1]
+       fmul <4 x float> %523, %32              ; <<4 x float>>:524 [#uses=1]
+       fmul <4 x float> %25, %25               ; <<4 x float>>:525 [#uses=1]
+       fmul <4 x float> %525, %26              ; <<4 x float>>:526 [#uses=1]
+       fmul <4 x float> %526, %27              ; <<4 x float>>:527 [#uses=1]
+       fmul <4 x float> %527, %28              ; <<4 x float>>:528 [#uses=1]
+       fmul <4 x float> %528, %29              ; <<4 x float>>:529 [#uses=1]
+       fmul <4 x float> %529, %30              ; <<4 x float>>:530 [#uses=1]
+       fmul <4 x float> %530, %31              ; <<4 x float>>:531 [#uses=1]
+       fmul <4 x float> %531, %32              ; <<4 x float>>:532 [#uses=1]
+       fmul <4 x float> %26, %26               ; <<4 x float>>:533 [#uses=1]
+       fmul <4 x float> %533, %27              ; <<4 x float>>:534 [#uses=1]
+       fmul <4 x float> %534, %28              ; <<4 x float>>:535 [#uses=1]
+       fmul <4 x float> %535, %29              ; <<4 x float>>:536 [#uses=1]
+       fmul <4 x float> %536, %30              ; <<4 x float>>:537 [#uses=1]
+       fmul <4 x float> %537, %31              ; <<4 x float>>:538 [#uses=1]
+       fmul <4 x float> %538, %32              ; <<4 x float>>:539 [#uses=1]
+       fmul <4 x float> %27, %27               ; <<4 x float>>:540 [#uses=1]
+       fmul <4 x float> %540, %28              ; <<4 x float>>:541 [#uses=1]
+       fmul <4 x float> %541, %29              ; <<4 x float>>:542 [#uses=1]
+       fmul <4 x float> %542, %30              ; <<4 x float>>:543 [#uses=1]
+       fmul <4 x float> %543, %31              ; <<4 x float>>:544 [#uses=1]
+       fmul <4 x float> %544, %32              ; <<4 x float>>:545 [#uses=1]
+       fmul <4 x float> %28, %28               ; <<4 x float>>:546 [#uses=1]
+       fmul <4 x float> %546, %29              ; <<4 x float>>:547 [#uses=1]
+       fmul <4 x float> %547, %30              ; <<4 x float>>:548 [#uses=1]
+       fmul <4 x float> %548, %31              ; <<4 x float>>:549 [#uses=1]
+       fmul <4 x float> %549, %32              ; <<4 x float>>:550 [#uses=1]
+       fmul <4 x float> %29, %29               ; <<4 x float>>:551 [#uses=1]
+       fmul <4 x float> %551, %30              ; <<4 x float>>:552 [#uses=1]
+       fmul <4 x float> %552, %31              ; <<4 x float>>:553 [#uses=1]
+       fmul <4 x float> %553, %32              ; <<4 x float>>:554 [#uses=1]
+       fmul <4 x float> %30, %30               ; <<4 x float>>:555 [#uses=1]
+       fmul <4 x float> %555, %31              ; <<4 x float>>:556 [#uses=1]
+       fmul <4 x float> %556, %32              ; <<4 x float>>:557 [#uses=1]
+       fmul <4 x float> %31, %31               ; <<4 x float>>:558 [#uses=1]
+       fmul <4 x float> %558, %32              ; <<4 x float>>:559 [#uses=1]
+       fmul <4 x float> %32, %32               ; <<4 x float>>:560 [#uses=1]
+       fadd <4 x float> %64, %64               ; <<4 x float>>:561 [#uses=1]
+       fadd <4 x float> %561, %64              ; <<4 x float>>:562 [#uses=1]
+       fadd <4 x float> %562, %95              ; <<4 x float>>:563 [#uses=1]
+       fadd <4 x float> %563, %125             ; <<4 x float>>:564 [#uses=1]
+       fadd <4 x float> %564, %154             ; <<4 x float>>:565 [#uses=1]
+       fadd <4 x float> %565, %182             ; <<4 x float>>:566 [#uses=1]
+       fadd <4 x float> %566, %209             ; <<4 x float>>:567 [#uses=1]
+       fadd <4 x float> %567, %235             ; <<4 x float>>:568 [#uses=1]
+       fadd <4 x float> %568, %260             ; <<4 x float>>:569 [#uses=1]
+       fadd <4 x float> %569, %284             ; <<4 x float>>:570 [#uses=1]
+       fadd <4 x float> %570, %307             ; <<4 x float>>:571 [#uses=1]
+       fadd <4 x float> %571, %329             ; <<4 x float>>:572 [#uses=1]
+       fadd <4 x float> %572, %350             ; <<4 x float>>:573 [#uses=1]
+       fadd <4 x float> %573, %370             ; <<4 x float>>:574 [#uses=1]
+       fadd <4 x float> %574, %389             ; <<4 x float>>:575 [#uses=1]
+       fadd <4 x float> %575, %407             ; <<4 x float>>:576 [#uses=1]
+       fadd <4 x float> %576, %424             ; <<4 x float>>:577 [#uses=1]
+       fadd <4 x float> %577, %440             ; <<4 x float>>:578 [#uses=1]
+       fadd <4 x float> %578, %455             ; <<4 x float>>:579 [#uses=1]
+       fadd <4 x float> %579, %469             ; <<4 x float>>:580 [#uses=1]
+       fadd <4 x float> %580, %482             ; <<4 x float>>:581 [#uses=1]
+       fadd <4 x float> %581, %494             ; <<4 x float>>:582 [#uses=1]
+       fadd <4 x float> %582, %505             ; <<4 x float>>:583 [#uses=1]
+       fadd <4 x float> %583, %515             ; <<4 x float>>:584 [#uses=1]
+       fadd <4 x float> %584, %524             ; <<4 x float>>:585 [#uses=1]
+       fadd <4 x float> %585, %532             ; <<4 x float>>:586 [#uses=1]
+       fadd <4 x float> %586, %539             ; <<4 x float>>:587 [#uses=1]
+       fadd <4 x float> %587, %545             ; <<4 x float>>:588 [#uses=1]
+       fadd <4 x float> %588, %550             ; <<4 x float>>:589 [#uses=1]
+       fadd <4 x float> %589, %554             ; <<4 x float>>:590 [#uses=1]
+       fadd <4 x float> %590, %557             ; <<4 x float>>:591 [#uses=1]
+       fadd <4 x float> %591, %559             ; <<4 x float>>:592 [#uses=1]
+       fadd <4 x float> %592, %560             ; <<4 x float>>:593 [#uses=1]
+       store <4 x float> %593, <4 x float>* @0, align 1
+       ret void
+}
index 2918a68a9a0c9ff742205bcb477eb8f1f95cfb4c..eafb7c29fa0aaa3a562d8d307a1948fa19ef1423 100644 (file)
@@ -1,4 +1,4 @@
-; RUN: llc < %s -relocation-model=static -realign-stack=1 -mcpu=yonah | FileCheck %s
+; RUN: llc < %s -relocation-model=static -mcpu=yonah | FileCheck %s
 
 ; The double argument is at 4(esp) which is 16-byte aligned, allowing us to
 ; fold the load into the andpd.
index 9dbabf0dc2dda7da3fe700b7c1d6c962408fe512..b69e72fe20c029355d958e16896a98663ce3bfb2 100644 (file)
@@ -38,7 +38,7 @@ declare void @llvm.dbg.declare(metadata, metadata) #1
 
 declare void @llvm.dbg.value(metadata, i64, metadata) #1
 
-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" }
+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" }
 attributes #1 = { nounwind readnone }
 
 !llvm.dbg.cu = !{!0}
index 398b3532ea304b9bedbb6b91beff6e5fed21f7fc..1ef3a7ce59b3beb67b1aae5b92f2180f111fcdac 100644 (file)
@@ -41,8 +41,8 @@ end:
 }
 declare i32 @Trace(...) #1
 
-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" }
-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" }
+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" }
+attributes #1 = { "fp-contract-model"="standard" "no-frame-pointer-elim" "no-frame-pointer-elim-non-leaf" "relocation-model"="pic" "ssp-buffers-size"="8" }
 attributes #2 = { nounwind }
 
 !0 = metadata !{i32 1039}
index c66106b59475c711f8ffa276eb0d0ddbf3a200b9..6aac8ffe5a70a9a57aa5ad87f77007c2b0d130a6 100644 (file)
@@ -275,7 +275,6 @@ static int compileModule(char **argv, LLVMContext &Context) {
   Options.GuaranteedTailCallOpt = EnableGuaranteedTailCallOpt;
   Options.DisableTailCalls = DisableTailCalls;
   Options.StackAlignmentOverride = OverrideStackAlignment;
-  Options.RealignStack = EnableRealignStack;
   Options.TrapFuncName = TrapFuncName;
   Options.PositionIndependentExecutable = EnablePIE;
   Options.EnableSegmentedStacks = SegmentedStacks;
index 7aeadc3da4303ae027c7b47499ecade1bc07312b..e89733f587e3adf6585bd607d23533392c918d37 100644 (file)
@@ -121,11 +121,6 @@ OverrideStackAlignment("stack-alignment",
   cl::desc("Override default stack alignment"),
   cl::init(0));
 
-static cl::opt<bool>
-EnableRealignStack("realign-stack",
-  cl::desc("Realign stack if needed"),
-  cl::init(true));
-
 static cl::opt<std::string>
 TrapFuncName("trap-func", cl::Hidden,
   cl::desc("Emit a call to trap function rather than a trap instruction"),
@@ -244,7 +239,6 @@ void LTOModule::getTargetOptions(TargetOptions &Options) {
   Options.GuaranteedTailCallOpt = EnableGuaranteedTailCallOpt;
   Options.DisableTailCalls = DisableTailCalls;
   Options.StackAlignmentOverride = OverrideStackAlignment;
-  Options.RealignStack = EnableRealignStack;
   Options.TrapFuncName = TrapFuncName;
   Options.PositionIndependentExecutable = EnablePIE;
   Options.EnableSegmentedStacks = SegmentedStacks;
index fa0a0ed2ba50369b0abee7c86423bec951dd3862..37637ca628057558a09088f4cf6d04afd55f303e 100644 (file)
@@ -504,7 +504,6 @@ static TargetOptions GetTargetOptions() {
   Options.GuaranteedTailCallOpt = EnableGuaranteedTailCallOpt;
   Options.DisableTailCalls = DisableTailCalls;
   Options.StackAlignmentOverride = OverrideStackAlignment;
-  Options.RealignStack = EnableRealignStack;
   Options.TrapFuncName = TrapFuncName;
   Options.PositionIndependentExecutable = EnablePIE;
   Options.EnableSegmentedStacks = SegmentedStacks;