[llvm] f8cf007 - [X86] matrix-multiply.ll - add common AVX1+2 check prefix
Simon Pilgrim via llvm-commits
llvm-commits at lists.llvm.org
Fri Mar 7 03:39:00 PST 2025
Author: Simon Pilgrim
Date: 2025-03-07T11:38:51Z
New Revision: f8cf007b4cdc975e44c94c2a3276023b7816cd74
URL: https://github.com/llvm/llvm-project/commit/f8cf007b4cdc975e44c94c2a3276023b7816cd74
DIFF: https://github.com/llvm/llvm-project/commit/f8cf007b4cdc975e44c94c2a3276023b7816cd74.diff
LOG: [X86] matrix-multiply.ll - add common AVX1+2 check prefix
Added:
Modified:
llvm/test/CodeGen/X86/matrix-multiply.ll
Removed:
################################################################################
diff --git a/llvm/test/CodeGen/X86/matrix-multiply.ll b/llvm/test/CodeGen/X86/matrix-multiply.ll
index bb7ab4a666859..7a5819c2978ae 100644
--- a/llvm/test/CodeGen/X86/matrix-multiply.ll
+++ b/llvm/test/CodeGen/X86/matrix-multiply.ll
@@ -1,7 +1,7 @@
; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
; RUN: llc < %s -disable-peephole -mtriple=x86_64-unknown-unknown | FileCheck %s --check-prefixes=SSE
-; RUN: llc < %s -disable-peephole -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s --check-prefixes=AVX,AVX1
-; RUN: llc < %s -disable-peephole -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefixes=AVX,AVX2
+; RUN: llc < %s -disable-peephole -mtriple=x86_64-unknown-unknown -mattr=+avx | FileCheck %s --check-prefixes=AVX,AVX1OR2,AVX1
+; RUN: llc < %s -disable-peephole -mtriple=x86_64-unknown-unknown -mattr=+avx2 | FileCheck %s --check-prefixes=AVX,AVX1OR2,AVX2
; RUN: llc < %s -disable-peephole -mtriple=x86_64-unknown-unknown -mattr=+avx512f | FileCheck %s --check-prefixes=AVX,AVX512,AVX512F
; RUN: llc < %s -disable-peephole -mtriple=x86_64-unknown-unknown -mattr=+avx512vl | FileCheck %s --check-prefixes=AVX,AVX512,AVX512VL
@@ -2146,413 +2146,209 @@ define <64 x float> @test_mul8x8_f32(<64 x float> %a0, <64 x float> %a1) nounwin
; SSE-NEXT: addq $120, %rsp
; SSE-NEXT: retq
;
-; AVX1-LABEL: test_mul8x8_f32:
-; AVX1: # %bb.0: # %entry
-; AVX1-NEXT: pushq %rbp
-; AVX1-NEXT: movq %rsp, %rbp
-; AVX1-NEXT: andq $-32, %rsp
-; AVX1-NEXT: subq $32, %rsp
-; AVX1-NEXT: movq %rdi, %rax
-; AVX1-NEXT: vbroadcastss 16(%rbp), %ymm8
-; AVX1-NEXT: vmulps %ymm0, %ymm8, %ymm8
-; AVX1-NEXT: vbroadcastss 20(%rbp), %ymm9
-; AVX1-NEXT: vmulps %ymm1, %ymm9, %ymm9
-; AVX1-NEXT: vaddps %ymm9, %ymm8, %ymm8
-; AVX1-NEXT: vbroadcastss 24(%rbp), %ymm9
-; AVX1-NEXT: vmulps %ymm2, %ymm9, %ymm9
-; AVX1-NEXT: vaddps %ymm9, %ymm8, %ymm8
-; AVX1-NEXT: vbroadcastss 28(%rbp), %ymm9
-; AVX1-NEXT: vmulps %ymm3, %ymm9, %ymm9
-; AVX1-NEXT: vaddps %ymm9, %ymm8, %ymm8
-; AVX1-NEXT: vbroadcastss 32(%rbp), %ymm9
-; AVX1-NEXT: vmulps %ymm4, %ymm9, %ymm9
-; AVX1-NEXT: vaddps %ymm9, %ymm8, %ymm8
-; AVX1-NEXT: vbroadcastss 36(%rbp), %ymm9
-; AVX1-NEXT: vmulps %ymm5, %ymm9, %ymm9
-; AVX1-NEXT: vaddps %ymm9, %ymm8, %ymm8
-; AVX1-NEXT: vbroadcastss 40(%rbp), %ymm9
-; AVX1-NEXT: vmulps %ymm6, %ymm9, %ymm9
-; AVX1-NEXT: vaddps %ymm9, %ymm8, %ymm8
-; AVX1-NEXT: vbroadcastss 44(%rbp), %ymm9
-; AVX1-NEXT: vmulps %ymm7, %ymm9, %ymm9
-; AVX1-NEXT: vaddps %ymm9, %ymm8, %ymm8
-; AVX1-NEXT: vbroadcastss 48(%rbp), %ymm9
-; AVX1-NEXT: vmulps %ymm0, %ymm9, %ymm9
-; AVX1-NEXT: vbroadcastss 52(%rbp), %ymm10
-; AVX1-NEXT: vmulps %ymm1, %ymm10, %ymm10
-; AVX1-NEXT: vaddps %ymm10, %ymm9, %ymm9
-; AVX1-NEXT: vbroadcastss 56(%rbp), %ymm10
-; AVX1-NEXT: vmulps %ymm2, %ymm10, %ymm10
-; AVX1-NEXT: vaddps %ymm10, %ymm9, %ymm9
-; AVX1-NEXT: vbroadcastss 60(%rbp), %ymm10
-; AVX1-NEXT: vmulps %ymm3, %ymm10, %ymm10
-; AVX1-NEXT: vaddps %ymm10, %ymm9, %ymm9
-; AVX1-NEXT: vbroadcastss 64(%rbp), %ymm10
-; AVX1-NEXT: vmulps %ymm4, %ymm10, %ymm10
-; AVX1-NEXT: vaddps %ymm10, %ymm9, %ymm9
-; AVX1-NEXT: vbroadcastss 68(%rbp), %ymm10
-; AVX1-NEXT: vmulps %ymm5, %ymm10, %ymm10
-; AVX1-NEXT: vaddps %ymm10, %ymm9, %ymm9
-; AVX1-NEXT: vbroadcastss 72(%rbp), %ymm10
-; AVX1-NEXT: vmulps %ymm6, %ymm10, %ymm10
-; AVX1-NEXT: vaddps %ymm10, %ymm9, %ymm9
-; AVX1-NEXT: vbroadcastss 76(%rbp), %ymm10
-; AVX1-NEXT: vmulps %ymm7, %ymm10, %ymm10
-; AVX1-NEXT: vaddps %ymm10, %ymm9, %ymm9
-; AVX1-NEXT: vbroadcastss 80(%rbp), %ymm10
-; AVX1-NEXT: vmulps %ymm0, %ymm10, %ymm10
-; AVX1-NEXT: vbroadcastss 84(%rbp), %ymm11
-; AVX1-NEXT: vmulps %ymm1, %ymm11, %ymm11
-; AVX1-NEXT: vaddps %ymm11, %ymm10, %ymm10
-; AVX1-NEXT: vbroadcastss 88(%rbp), %ymm11
-; AVX1-NEXT: vmulps %ymm2, %ymm11, %ymm11
-; AVX1-NEXT: vaddps %ymm11, %ymm10, %ymm10
-; AVX1-NEXT: vbroadcastss 92(%rbp), %ymm11
-; AVX1-NEXT: vmulps %ymm3, %ymm11, %ymm11
-; AVX1-NEXT: vaddps %ymm11, %ymm10, %ymm10
-; AVX1-NEXT: vbroadcastss 96(%rbp), %ymm11
-; AVX1-NEXT: vmulps %ymm4, %ymm11, %ymm11
-; AVX1-NEXT: vaddps %ymm11, %ymm10, %ymm10
-; AVX1-NEXT: vbroadcastss 100(%rbp), %ymm11
-; AVX1-NEXT: vmulps %ymm5, %ymm11, %ymm11
-; AVX1-NEXT: vaddps %ymm11, %ymm10, %ymm10
-; AVX1-NEXT: vbroadcastss 104(%rbp), %ymm11
-; AVX1-NEXT: vmulps %ymm6, %ymm11, %ymm11
-; AVX1-NEXT: vaddps %ymm11, %ymm10, %ymm10
-; AVX1-NEXT: vbroadcastss 108(%rbp), %ymm11
-; AVX1-NEXT: vmulps %ymm7, %ymm11, %ymm11
-; AVX1-NEXT: vaddps %ymm11, %ymm10, %ymm10
-; AVX1-NEXT: vbroadcastss 112(%rbp), %ymm11
-; AVX1-NEXT: vmulps %ymm0, %ymm11, %ymm11
-; AVX1-NEXT: vbroadcastss 116(%rbp), %ymm12
-; AVX1-NEXT: vmulps %ymm1, %ymm12, %ymm12
-; AVX1-NEXT: vaddps %ymm12, %ymm11, %ymm11
-; AVX1-NEXT: vbroadcastss 120(%rbp), %ymm12
-; AVX1-NEXT: vmulps %ymm2, %ymm12, %ymm12
-; AVX1-NEXT: vaddps %ymm12, %ymm11, %ymm11
-; AVX1-NEXT: vbroadcastss 124(%rbp), %ymm12
-; AVX1-NEXT: vmulps %ymm3, %ymm12, %ymm12
-; AVX1-NEXT: vaddps %ymm12, %ymm11, %ymm11
-; AVX1-NEXT: vbroadcastss 128(%rbp), %ymm12
-; AVX1-NEXT: vmulps %ymm4, %ymm12, %ymm12
-; AVX1-NEXT: vaddps %ymm12, %ymm11, %ymm11
-; AVX1-NEXT: vbroadcastss 132(%rbp), %ymm12
-; AVX1-NEXT: vmulps %ymm5, %ymm12, %ymm12
-; AVX1-NEXT: vaddps %ymm12, %ymm11, %ymm11
-; AVX1-NEXT: vbroadcastss 136(%rbp), %ymm12
-; AVX1-NEXT: vmulps %ymm6, %ymm12, %ymm12
-; AVX1-NEXT: vaddps %ymm12, %ymm11, %ymm11
-; AVX1-NEXT: vbroadcastss 140(%rbp), %ymm12
-; AVX1-NEXT: vmulps %ymm7, %ymm12, %ymm12
-; AVX1-NEXT: vaddps %ymm12, %ymm11, %ymm11
-; AVX1-NEXT: vbroadcastss 144(%rbp), %ymm12
-; AVX1-NEXT: vmulps %ymm0, %ymm12, %ymm12
-; AVX1-NEXT: vbroadcastss 148(%rbp), %ymm13
-; AVX1-NEXT: vmulps %ymm1, %ymm13, %ymm13
-; AVX1-NEXT: vaddps %ymm13, %ymm12, %ymm12
-; AVX1-NEXT: vbroadcastss 152(%rbp), %ymm13
-; AVX1-NEXT: vmulps %ymm2, %ymm13, %ymm13
-; AVX1-NEXT: vaddps %ymm13, %ymm12, %ymm12
-; AVX1-NEXT: vbroadcastss 156(%rbp), %ymm13
-; AVX1-NEXT: vmulps %ymm3, %ymm13, %ymm13
-; AVX1-NEXT: vaddps %ymm13, %ymm12, %ymm12
-; AVX1-NEXT: vbroadcastss 160(%rbp), %ymm13
-; AVX1-NEXT: vmulps %ymm4, %ymm13, %ymm13
-; AVX1-NEXT: vaddps %ymm13, %ymm12, %ymm12
-; AVX1-NEXT: vbroadcastss 164(%rbp), %ymm13
-; AVX1-NEXT: vmulps %ymm5, %ymm13, %ymm13
-; AVX1-NEXT: vaddps %ymm13, %ymm12, %ymm12
-; AVX1-NEXT: vbroadcastss 168(%rbp), %ymm13
-; AVX1-NEXT: vmulps %ymm6, %ymm13, %ymm13
-; AVX1-NEXT: vaddps %ymm13, %ymm12, %ymm12
-; AVX1-NEXT: vbroadcastss 172(%rbp), %ymm13
-; AVX1-NEXT: vmulps %ymm7, %ymm13, %ymm13
-; AVX1-NEXT: vaddps %ymm13, %ymm12, %ymm12
-; AVX1-NEXT: vbroadcastss 176(%rbp), %ymm13
-; AVX1-NEXT: vmulps %ymm0, %ymm13, %ymm13
-; AVX1-NEXT: vbroadcastss 180(%rbp), %ymm14
-; AVX1-NEXT: vmulps %ymm1, %ymm14, %ymm14
-; AVX1-NEXT: vaddps %ymm14, %ymm13, %ymm13
-; AVX1-NEXT: vbroadcastss 184(%rbp), %ymm14
-; AVX1-NEXT: vmulps %ymm2, %ymm14, %ymm14
-; AVX1-NEXT: vaddps %ymm14, %ymm13, %ymm13
-; AVX1-NEXT: vbroadcastss 188(%rbp), %ymm14
-; AVX1-NEXT: vmulps %ymm3, %ymm14, %ymm14
-; AVX1-NEXT: vaddps %ymm14, %ymm13, %ymm13
-; AVX1-NEXT: vbroadcastss 192(%rbp), %ymm14
-; AVX1-NEXT: vmulps %ymm4, %ymm14, %ymm14
-; AVX1-NEXT: vaddps %ymm14, %ymm13, %ymm13
-; AVX1-NEXT: vbroadcastss 196(%rbp), %ymm14
-; AVX1-NEXT: vmulps %ymm5, %ymm14, %ymm14
-; AVX1-NEXT: vaddps %ymm14, %ymm13, %ymm13
-; AVX1-NEXT: vbroadcastss 200(%rbp), %ymm14
-; AVX1-NEXT: vmulps %ymm6, %ymm14, %ymm14
-; AVX1-NEXT: vaddps %ymm14, %ymm13, %ymm13
-; AVX1-NEXT: vbroadcastss 204(%rbp), %ymm14
-; AVX1-NEXT: vmulps %ymm7, %ymm14, %ymm14
-; AVX1-NEXT: vaddps %ymm14, %ymm13, %ymm13
-; AVX1-NEXT: vbroadcastss 208(%rbp), %ymm14
-; AVX1-NEXT: vmulps %ymm0, %ymm14, %ymm14
-; AVX1-NEXT: vbroadcastss 212(%rbp), %ymm15
-; AVX1-NEXT: vmulps %ymm1, %ymm15, %ymm15
-; AVX1-NEXT: vaddps %ymm15, %ymm14, %ymm14
-; AVX1-NEXT: vbroadcastss 216(%rbp), %ymm15
-; AVX1-NEXT: vmulps %ymm2, %ymm15, %ymm15
-; AVX1-NEXT: vaddps %ymm15, %ymm14, %ymm14
-; AVX1-NEXT: vbroadcastss 220(%rbp), %ymm15
-; AVX1-NEXT: vmulps %ymm3, %ymm15, %ymm15
-; AVX1-NEXT: vaddps %ymm15, %ymm14, %ymm14
-; AVX1-NEXT: vbroadcastss 224(%rbp), %ymm15
-; AVX1-NEXT: vmulps %ymm4, %ymm15, %ymm15
-; AVX1-NEXT: vaddps %ymm15, %ymm14, %ymm14
-; AVX1-NEXT: vbroadcastss 228(%rbp), %ymm15
-; AVX1-NEXT: vmulps %ymm5, %ymm15, %ymm15
-; AVX1-NEXT: vaddps %ymm15, %ymm14, %ymm14
-; AVX1-NEXT: vbroadcastss 232(%rbp), %ymm15
-; AVX1-NEXT: vmulps %ymm6, %ymm15, %ymm15
-; AVX1-NEXT: vaddps %ymm15, %ymm14, %ymm14
-; AVX1-NEXT: vbroadcastss 236(%rbp), %ymm15
-; AVX1-NEXT: vmulps %ymm7, %ymm15, %ymm15
-; AVX1-NEXT: vaddps %ymm15, %ymm14, %ymm14
-; AVX1-NEXT: vbroadcastss 240(%rbp), %ymm15
-; AVX1-NEXT: vmulps %ymm0, %ymm15, %ymm0
-; AVX1-NEXT: vbroadcastss 244(%rbp), %ymm15
-; AVX1-NEXT: vmulps %ymm1, %ymm15, %ymm1
-; AVX1-NEXT: vaddps %ymm1, %ymm0, %ymm0
-; AVX1-NEXT: vbroadcastss 248(%rbp), %ymm1
-; AVX1-NEXT: vmulps %ymm1, %ymm2, %ymm1
-; AVX1-NEXT: vaddps %ymm1, %ymm0, %ymm0
-; AVX1-NEXT: vbroadcastss 252(%rbp), %ymm1
-; AVX1-NEXT: vmulps %ymm1, %ymm3, %ymm1
-; AVX1-NEXT: vaddps %ymm1, %ymm0, %ymm0
-; AVX1-NEXT: vbroadcastss 256(%rbp), %ymm1
-; AVX1-NEXT: vmulps %ymm1, %ymm4, %ymm1
-; AVX1-NEXT: vaddps %ymm1, %ymm0, %ymm0
-; AVX1-NEXT: vbroadcastss 260(%rbp), %ymm1
-; AVX1-NEXT: vmulps %ymm1, %ymm5, %ymm1
-; AVX1-NEXT: vaddps %ymm1, %ymm0, %ymm0
-; AVX1-NEXT: vbroadcastss 264(%rbp), %ymm1
-; AVX1-NEXT: vmulps %ymm1, %ymm6, %ymm1
-; AVX1-NEXT: vaddps %ymm1, %ymm0, %ymm0
-; AVX1-NEXT: vbroadcastss 268(%rbp), %ymm1
-; AVX1-NEXT: vmulps %ymm1, %ymm7, %ymm1
-; AVX1-NEXT: vaddps %ymm1, %ymm0, %ymm0
-; AVX1-NEXT: vmovaps %ymm0, 224(%rdi)
-; AVX1-NEXT: vmovaps %ymm14, 192(%rdi)
-; AVX1-NEXT: vmovaps %ymm13, 160(%rdi)
-; AVX1-NEXT: vmovaps %ymm12, 128(%rdi)
-; AVX1-NEXT: vmovaps %ymm11, 96(%rdi)
-; AVX1-NEXT: vmovaps %ymm10, 64(%rdi)
-; AVX1-NEXT: vmovaps %ymm9, 32(%rdi)
-; AVX1-NEXT: vmovaps %ymm8, (%rdi)
-; AVX1-NEXT: movq %rbp, %rsp
-; AVX1-NEXT: popq %rbp
-; AVX1-NEXT: vzeroupper
-; AVX1-NEXT: retq
-;
-; AVX2-LABEL: test_mul8x8_f32:
-; AVX2: # %bb.0: # %entry
-; AVX2-NEXT: pushq %rbp
-; AVX2-NEXT: movq %rsp, %rbp
-; AVX2-NEXT: andq $-32, %rsp
-; AVX2-NEXT: subq $32, %rsp
-; AVX2-NEXT: movq %rdi, %rax
-; AVX2-NEXT: vbroadcastss 16(%rbp), %ymm8
-; AVX2-NEXT: vmulps %ymm0, %ymm8, %ymm8
-; AVX2-NEXT: vbroadcastss 20(%rbp), %ymm9
-; AVX2-NEXT: vmulps %ymm1, %ymm9, %ymm9
-; AVX2-NEXT: vaddps %ymm9, %ymm8, %ymm8
-; AVX2-NEXT: vbroadcastss 24(%rbp), %ymm9
-; AVX2-NEXT: vmulps %ymm2, %ymm9, %ymm9
-; AVX2-NEXT: vaddps %ymm9, %ymm8, %ymm8
-; AVX2-NEXT: vbroadcastss 28(%rbp), %ymm9
-; AVX2-NEXT: vmulps %ymm3, %ymm9, %ymm9
-; AVX2-NEXT: vaddps %ymm9, %ymm8, %ymm8
-; AVX2-NEXT: vbroadcastss 32(%rbp), %ymm9
-; AVX2-NEXT: vmulps %ymm4, %ymm9, %ymm9
-; AVX2-NEXT: vaddps %ymm9, %ymm8, %ymm8
-; AVX2-NEXT: vbroadcastss 36(%rbp), %ymm9
-; AVX2-NEXT: vmulps %ymm5, %ymm9, %ymm9
-; AVX2-NEXT: vaddps %ymm9, %ymm8, %ymm8
-; AVX2-NEXT: vbroadcastss 40(%rbp), %ymm9
-; AVX2-NEXT: vmulps %ymm6, %ymm9, %ymm9
-; AVX2-NEXT: vaddps %ymm9, %ymm8, %ymm8
-; AVX2-NEXT: vbroadcastss 44(%rbp), %ymm9
-; AVX2-NEXT: vmulps %ymm7, %ymm9, %ymm9
-; AVX2-NEXT: vaddps %ymm9, %ymm8, %ymm8
-; AVX2-NEXT: vbroadcastss 48(%rbp), %ymm9
-; AVX2-NEXT: vmulps %ymm0, %ymm9, %ymm9
-; AVX2-NEXT: vbroadcastss 52(%rbp), %ymm10
-; AVX2-NEXT: vmulps %ymm1, %ymm10, %ymm10
-; AVX2-NEXT: vaddps %ymm10, %ymm9, %ymm9
-; AVX2-NEXT: vbroadcastss 56(%rbp), %ymm10
-; AVX2-NEXT: vmulps %ymm2, %ymm10, %ymm10
-; AVX2-NEXT: vaddps %ymm10, %ymm9, %ymm9
-; AVX2-NEXT: vbroadcastss 60(%rbp), %ymm10
-; AVX2-NEXT: vmulps %ymm3, %ymm10, %ymm10
-; AVX2-NEXT: vaddps %ymm10, %ymm9, %ymm9
-; AVX2-NEXT: vbroadcastss 64(%rbp), %ymm10
-; AVX2-NEXT: vmulps %ymm4, %ymm10, %ymm10
-; AVX2-NEXT: vaddps %ymm10, %ymm9, %ymm9
-; AVX2-NEXT: vbroadcastss 68(%rbp), %ymm10
-; AVX2-NEXT: vmulps %ymm5, %ymm10, %ymm10
-; AVX2-NEXT: vaddps %ymm10, %ymm9, %ymm9
-; AVX2-NEXT: vbroadcastss 72(%rbp), %ymm10
-; AVX2-NEXT: vmulps %ymm6, %ymm10, %ymm10
-; AVX2-NEXT: vaddps %ymm10, %ymm9, %ymm9
-; AVX2-NEXT: vbroadcastss 76(%rbp), %ymm10
-; AVX2-NEXT: vmulps %ymm7, %ymm10, %ymm10
-; AVX2-NEXT: vaddps %ymm10, %ymm9, %ymm9
-; AVX2-NEXT: vbroadcastss 80(%rbp), %ymm10
-; AVX2-NEXT: vmulps %ymm0, %ymm10, %ymm10
-; AVX2-NEXT: vbroadcastss 84(%rbp), %ymm11
-; AVX2-NEXT: vmulps %ymm1, %ymm11, %ymm11
-; AVX2-NEXT: vaddps %ymm11, %ymm10, %ymm10
-; AVX2-NEXT: vbroadcastss 88(%rbp), %ymm11
-; AVX2-NEXT: vmulps %ymm2, %ymm11, %ymm11
-; AVX2-NEXT: vaddps %ymm11, %ymm10, %ymm10
-; AVX2-NEXT: vbroadcastss 92(%rbp), %ymm11
-; AVX2-NEXT: vmulps %ymm3, %ymm11, %ymm11
-; AVX2-NEXT: vaddps %ymm11, %ymm10, %ymm10
-; AVX2-NEXT: vbroadcastss 96(%rbp), %ymm11
-; AVX2-NEXT: vmulps %ymm4, %ymm11, %ymm11
-; AVX2-NEXT: vaddps %ymm11, %ymm10, %ymm10
-; AVX2-NEXT: vbroadcastss 100(%rbp), %ymm11
-; AVX2-NEXT: vmulps %ymm5, %ymm11, %ymm11
-; AVX2-NEXT: vaddps %ymm11, %ymm10, %ymm10
-; AVX2-NEXT: vbroadcastss 104(%rbp), %ymm11
-; AVX2-NEXT: vmulps %ymm6, %ymm11, %ymm11
-; AVX2-NEXT: vaddps %ymm11, %ymm10, %ymm10
-; AVX2-NEXT: vbroadcastss 108(%rbp), %ymm11
-; AVX2-NEXT: vmulps %ymm7, %ymm11, %ymm11
-; AVX2-NEXT: vaddps %ymm11, %ymm10, %ymm10
-; AVX2-NEXT: vbroadcastss 112(%rbp), %ymm11
-; AVX2-NEXT: vmulps %ymm0, %ymm11, %ymm11
-; AVX2-NEXT: vbroadcastss 116(%rbp), %ymm12
-; AVX2-NEXT: vmulps %ymm1, %ymm12, %ymm12
-; AVX2-NEXT: vaddps %ymm12, %ymm11, %ymm11
-; AVX2-NEXT: vbroadcastss 120(%rbp), %ymm12
-; AVX2-NEXT: vmulps %ymm2, %ymm12, %ymm12
-; AVX2-NEXT: vaddps %ymm12, %ymm11, %ymm11
-; AVX2-NEXT: vbroadcastss 124(%rbp), %ymm12
-; AVX2-NEXT: vmulps %ymm3, %ymm12, %ymm12
-; AVX2-NEXT: vaddps %ymm12, %ymm11, %ymm11
-; AVX2-NEXT: vbroadcastss 128(%rbp), %ymm12
-; AVX2-NEXT: vmulps %ymm4, %ymm12, %ymm12
-; AVX2-NEXT: vaddps %ymm12, %ymm11, %ymm11
-; AVX2-NEXT: vbroadcastss 132(%rbp), %ymm12
-; AVX2-NEXT: vmulps %ymm5, %ymm12, %ymm12
-; AVX2-NEXT: vaddps %ymm12, %ymm11, %ymm11
-; AVX2-NEXT: vbroadcastss 136(%rbp), %ymm12
-; AVX2-NEXT: vmulps %ymm6, %ymm12, %ymm12
-; AVX2-NEXT: vaddps %ymm12, %ymm11, %ymm11
-; AVX2-NEXT: vbroadcastss 140(%rbp), %ymm12
-; AVX2-NEXT: vmulps %ymm7, %ymm12, %ymm12
-; AVX2-NEXT: vaddps %ymm12, %ymm11, %ymm11
-; AVX2-NEXT: vbroadcastss 144(%rbp), %ymm12
-; AVX2-NEXT: vmulps %ymm0, %ymm12, %ymm12
-; AVX2-NEXT: vbroadcastss 148(%rbp), %ymm13
-; AVX2-NEXT: vmulps %ymm1, %ymm13, %ymm13
-; AVX2-NEXT: vaddps %ymm13, %ymm12, %ymm12
-; AVX2-NEXT: vbroadcastss 152(%rbp), %ymm13
-; AVX2-NEXT: vmulps %ymm2, %ymm13, %ymm13
-; AVX2-NEXT: vaddps %ymm13, %ymm12, %ymm12
-; AVX2-NEXT: vbroadcastss 156(%rbp), %ymm13
-; AVX2-NEXT: vmulps %ymm3, %ymm13, %ymm13
-; AVX2-NEXT: vaddps %ymm13, %ymm12, %ymm12
-; AVX2-NEXT: vbroadcastss 160(%rbp), %ymm13
-; AVX2-NEXT: vmulps %ymm4, %ymm13, %ymm13
-; AVX2-NEXT: vaddps %ymm13, %ymm12, %ymm12
-; AVX2-NEXT: vbroadcastss 164(%rbp), %ymm13
-; AVX2-NEXT: vmulps %ymm5, %ymm13, %ymm13
-; AVX2-NEXT: vaddps %ymm13, %ymm12, %ymm12
-; AVX2-NEXT: vbroadcastss 168(%rbp), %ymm13
-; AVX2-NEXT: vmulps %ymm6, %ymm13, %ymm13
-; AVX2-NEXT: vaddps %ymm13, %ymm12, %ymm12
-; AVX2-NEXT: vbroadcastss 172(%rbp), %ymm13
-; AVX2-NEXT: vmulps %ymm7, %ymm13, %ymm13
-; AVX2-NEXT: vaddps %ymm13, %ymm12, %ymm12
-; AVX2-NEXT: vbroadcastss 176(%rbp), %ymm13
-; AVX2-NEXT: vmulps %ymm0, %ymm13, %ymm13
-; AVX2-NEXT: vbroadcastss 180(%rbp), %ymm14
-; AVX2-NEXT: vmulps %ymm1, %ymm14, %ymm14
-; AVX2-NEXT: vaddps %ymm14, %ymm13, %ymm13
-; AVX2-NEXT: vbroadcastss 184(%rbp), %ymm14
-; AVX2-NEXT: vmulps %ymm2, %ymm14, %ymm14
-; AVX2-NEXT: vaddps %ymm14, %ymm13, %ymm13
-; AVX2-NEXT: vbroadcastss 188(%rbp), %ymm14
-; AVX2-NEXT: vmulps %ymm3, %ymm14, %ymm14
-; AVX2-NEXT: vaddps %ymm14, %ymm13, %ymm13
-; AVX2-NEXT: vbroadcastss 192(%rbp), %ymm14
-; AVX2-NEXT: vmulps %ymm4, %ymm14, %ymm14
-; AVX2-NEXT: vaddps %ymm14, %ymm13, %ymm13
-; AVX2-NEXT: vbroadcastss 196(%rbp), %ymm14
-; AVX2-NEXT: vmulps %ymm5, %ymm14, %ymm14
-; AVX2-NEXT: vaddps %ymm14, %ymm13, %ymm13
-; AVX2-NEXT: vbroadcastss 200(%rbp), %ymm14
-; AVX2-NEXT: vmulps %ymm6, %ymm14, %ymm14
-; AVX2-NEXT: vaddps %ymm14, %ymm13, %ymm13
-; AVX2-NEXT: vbroadcastss 204(%rbp), %ymm14
-; AVX2-NEXT: vmulps %ymm7, %ymm14, %ymm14
-; AVX2-NEXT: vaddps %ymm14, %ymm13, %ymm13
-; AVX2-NEXT: vbroadcastss 208(%rbp), %ymm14
-; AVX2-NEXT: vmulps %ymm0, %ymm14, %ymm14
-; AVX2-NEXT: vbroadcastss 212(%rbp), %ymm15
-; AVX2-NEXT: vmulps %ymm1, %ymm15, %ymm15
-; AVX2-NEXT: vaddps %ymm15, %ymm14, %ymm14
-; AVX2-NEXT: vbroadcastss 216(%rbp), %ymm15
-; AVX2-NEXT: vmulps %ymm2, %ymm15, %ymm15
-; AVX2-NEXT: vaddps %ymm15, %ymm14, %ymm14
-; AVX2-NEXT: vbroadcastss 220(%rbp), %ymm15
-; AVX2-NEXT: vmulps %ymm3, %ymm15, %ymm15
-; AVX2-NEXT: vaddps %ymm15, %ymm14, %ymm14
-; AVX2-NEXT: vbroadcastss 224(%rbp), %ymm15
-; AVX2-NEXT: vmulps %ymm4, %ymm15, %ymm15
-; AVX2-NEXT: vaddps %ymm15, %ymm14, %ymm14
-; AVX2-NEXT: vbroadcastss 228(%rbp), %ymm15
-; AVX2-NEXT: vmulps %ymm5, %ymm15, %ymm15
-; AVX2-NEXT: vaddps %ymm15, %ymm14, %ymm14
-; AVX2-NEXT: vbroadcastss 232(%rbp), %ymm15
-; AVX2-NEXT: vmulps %ymm6, %ymm15, %ymm15
-; AVX2-NEXT: vaddps %ymm15, %ymm14, %ymm14
-; AVX2-NEXT: vbroadcastss 236(%rbp), %ymm15
-; AVX2-NEXT: vmulps %ymm7, %ymm15, %ymm15
-; AVX2-NEXT: vaddps %ymm15, %ymm14, %ymm14
-; AVX2-NEXT: vbroadcastss 240(%rbp), %ymm15
-; AVX2-NEXT: vmulps %ymm0, %ymm15, %ymm0
-; AVX2-NEXT: vbroadcastss 244(%rbp), %ymm15
-; AVX2-NEXT: vmulps %ymm1, %ymm15, %ymm1
-; AVX2-NEXT: vaddps %ymm1, %ymm0, %ymm0
-; AVX2-NEXT: vbroadcastss 248(%rbp), %ymm1
-; AVX2-NEXT: vmulps %ymm1, %ymm2, %ymm1
-; AVX2-NEXT: vaddps %ymm1, %ymm0, %ymm0
-; AVX2-NEXT: vbroadcastss 252(%rbp), %ymm1
-; AVX2-NEXT: vmulps %ymm1, %ymm3, %ymm1
-; AVX2-NEXT: vaddps %ymm1, %ymm0, %ymm0
-; AVX2-NEXT: vbroadcastss 256(%rbp), %ymm1
-; AVX2-NEXT: vmulps %ymm1, %ymm4, %ymm1
-; AVX2-NEXT: vaddps %ymm1, %ymm0, %ymm0
-; AVX2-NEXT: vbroadcastss 260(%rbp), %ymm1
-; AVX2-NEXT: vmulps %ymm1, %ymm5, %ymm1
-; AVX2-NEXT: vaddps %ymm1, %ymm0, %ymm0
-; AVX2-NEXT: vbroadcastss 264(%rbp), %ymm1
-; AVX2-NEXT: vmulps %ymm1, %ymm6, %ymm1
-; AVX2-NEXT: vaddps %ymm1, %ymm0, %ymm0
-; AVX2-NEXT: vbroadcastss 268(%rbp), %ymm1
-; AVX2-NEXT: vmulps %ymm1, %ymm7, %ymm1
-; AVX2-NEXT: vaddps %ymm1, %ymm0, %ymm0
-; AVX2-NEXT: vmovaps %ymm0, 224(%rdi)
-; AVX2-NEXT: vmovaps %ymm14, 192(%rdi)
-; AVX2-NEXT: vmovaps %ymm13, 160(%rdi)
-; AVX2-NEXT: vmovaps %ymm12, 128(%rdi)
-; AVX2-NEXT: vmovaps %ymm11, 96(%rdi)
-; AVX2-NEXT: vmovaps %ymm10, 64(%rdi)
-; AVX2-NEXT: vmovaps %ymm9, 32(%rdi)
-; AVX2-NEXT: vmovaps %ymm8, (%rdi)
-; AVX2-NEXT: movq %rbp, %rsp
-; AVX2-NEXT: popq %rbp
-; AVX2-NEXT: vzeroupper
-; AVX2-NEXT: retq
+; AVX1OR2-LABEL: test_mul8x8_f32:
+; AVX1OR2: # %bb.0: # %entry
+; AVX1OR2-NEXT: pushq %rbp
+; AVX1OR2-NEXT: movq %rsp, %rbp
+; AVX1OR2-NEXT: andq $-32, %rsp
+; AVX1OR2-NEXT: subq $32, %rsp
+; AVX1OR2-NEXT: movq %rdi, %rax
+; AVX1OR2-NEXT: vbroadcastss 16(%rbp), %ymm8
+; AVX1OR2-NEXT: vmulps %ymm0, %ymm8, %ymm8
+; AVX1OR2-NEXT: vbroadcastss 20(%rbp), %ymm9
+; AVX1OR2-NEXT: vmulps %ymm1, %ymm9, %ymm9
+; AVX1OR2-NEXT: vaddps %ymm9, %ymm8, %ymm8
+; AVX1OR2-NEXT: vbroadcastss 24(%rbp), %ymm9
+; AVX1OR2-NEXT: vmulps %ymm2, %ymm9, %ymm9
+; AVX1OR2-NEXT: vaddps %ymm9, %ymm8, %ymm8
+; AVX1OR2-NEXT: vbroadcastss 28(%rbp), %ymm9
+; AVX1OR2-NEXT: vmulps %ymm3, %ymm9, %ymm9
+; AVX1OR2-NEXT: vaddps %ymm9, %ymm8, %ymm8
+; AVX1OR2-NEXT: vbroadcastss 32(%rbp), %ymm9
+; AVX1OR2-NEXT: vmulps %ymm4, %ymm9, %ymm9
+; AVX1OR2-NEXT: vaddps %ymm9, %ymm8, %ymm8
+; AVX1OR2-NEXT: vbroadcastss 36(%rbp), %ymm9
+; AVX1OR2-NEXT: vmulps %ymm5, %ymm9, %ymm9
+; AVX1OR2-NEXT: vaddps %ymm9, %ymm8, %ymm8
+; AVX1OR2-NEXT: vbroadcastss 40(%rbp), %ymm9
+; AVX1OR2-NEXT: vmulps %ymm6, %ymm9, %ymm9
+; AVX1OR2-NEXT: vaddps %ymm9, %ymm8, %ymm8
+; AVX1OR2-NEXT: vbroadcastss 44(%rbp), %ymm9
+; AVX1OR2-NEXT: vmulps %ymm7, %ymm9, %ymm9
+; AVX1OR2-NEXT: vaddps %ymm9, %ymm8, %ymm8
+; AVX1OR2-NEXT: vbroadcastss 48(%rbp), %ymm9
+; AVX1OR2-NEXT: vmulps %ymm0, %ymm9, %ymm9
+; AVX1OR2-NEXT: vbroadcastss 52(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulps %ymm1, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddps %ymm10, %ymm9, %ymm9
+; AVX1OR2-NEXT: vbroadcastss 56(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulps %ymm2, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddps %ymm10, %ymm9, %ymm9
+; AVX1OR2-NEXT: vbroadcastss 60(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulps %ymm3, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddps %ymm10, %ymm9, %ymm9
+; AVX1OR2-NEXT: vbroadcastss 64(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulps %ymm4, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddps %ymm10, %ymm9, %ymm9
+; AVX1OR2-NEXT: vbroadcastss 68(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulps %ymm5, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddps %ymm10, %ymm9, %ymm9
+; AVX1OR2-NEXT: vbroadcastss 72(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulps %ymm6, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddps %ymm10, %ymm9, %ymm9
+; AVX1OR2-NEXT: vbroadcastss 76(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulps %ymm7, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddps %ymm10, %ymm9, %ymm9
+; AVX1OR2-NEXT: vbroadcastss 80(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulps %ymm0, %ymm10, %ymm10
+; AVX1OR2-NEXT: vbroadcastss 84(%rbp), %ymm11
+; AVX1OR2-NEXT: vmulps %ymm1, %ymm11, %ymm11
+; AVX1OR2-NEXT: vaddps %ymm11, %ymm10, %ymm10
+; AVX1OR2-NEXT: vbroadcastss 88(%rbp), %ymm11
+; AVX1OR2-NEXT: vmulps %ymm2, %ymm11, %ymm11
+; AVX1OR2-NEXT: vaddps %ymm11, %ymm10, %ymm10
+; AVX1OR2-NEXT: vbroadcastss 92(%rbp), %ymm11
+; AVX1OR2-NEXT: vmulps %ymm3, %ymm11, %ymm11
+; AVX1OR2-NEXT: vaddps %ymm11, %ymm10, %ymm10
+; AVX1OR2-NEXT: vbroadcastss 96(%rbp), %ymm11
+; AVX1OR2-NEXT: vmulps %ymm4, %ymm11, %ymm11
+; AVX1OR2-NEXT: vaddps %ymm11, %ymm10, %ymm10
+; AVX1OR2-NEXT: vbroadcastss 100(%rbp), %ymm11
+; AVX1OR2-NEXT: vmulps %ymm5, %ymm11, %ymm11
+; AVX1OR2-NEXT: vaddps %ymm11, %ymm10, %ymm10
+; AVX1OR2-NEXT: vbroadcastss 104(%rbp), %ymm11
+; AVX1OR2-NEXT: vmulps %ymm6, %ymm11, %ymm11
+; AVX1OR2-NEXT: vaddps %ymm11, %ymm10, %ymm10
+; AVX1OR2-NEXT: vbroadcastss 108(%rbp), %ymm11
+; AVX1OR2-NEXT: vmulps %ymm7, %ymm11, %ymm11
+; AVX1OR2-NEXT: vaddps %ymm11, %ymm10, %ymm10
+; AVX1OR2-NEXT: vbroadcastss 112(%rbp), %ymm11
+; AVX1OR2-NEXT: vmulps %ymm0, %ymm11, %ymm11
+; AVX1OR2-NEXT: vbroadcastss 116(%rbp), %ymm12
+; AVX1OR2-NEXT: vmulps %ymm1, %ymm12, %ymm12
+; AVX1OR2-NEXT: vaddps %ymm12, %ymm11, %ymm11
+; AVX1OR2-NEXT: vbroadcastss 120(%rbp), %ymm12
+; AVX1OR2-NEXT: vmulps %ymm2, %ymm12, %ymm12
+; AVX1OR2-NEXT: vaddps %ymm12, %ymm11, %ymm11
+; AVX1OR2-NEXT: vbroadcastss 124(%rbp), %ymm12
+; AVX1OR2-NEXT: vmulps %ymm3, %ymm12, %ymm12
+; AVX1OR2-NEXT: vaddps %ymm12, %ymm11, %ymm11
+; AVX1OR2-NEXT: vbroadcastss 128(%rbp), %ymm12
+; AVX1OR2-NEXT: vmulps %ymm4, %ymm12, %ymm12
+; AVX1OR2-NEXT: vaddps %ymm12, %ymm11, %ymm11
+; AVX1OR2-NEXT: vbroadcastss 132(%rbp), %ymm12
+; AVX1OR2-NEXT: vmulps %ymm5, %ymm12, %ymm12
+; AVX1OR2-NEXT: vaddps %ymm12, %ymm11, %ymm11
+; AVX1OR2-NEXT: vbroadcastss 136(%rbp), %ymm12
+; AVX1OR2-NEXT: vmulps %ymm6, %ymm12, %ymm12
+; AVX1OR2-NEXT: vaddps %ymm12, %ymm11, %ymm11
+; AVX1OR2-NEXT: vbroadcastss 140(%rbp), %ymm12
+; AVX1OR2-NEXT: vmulps %ymm7, %ymm12, %ymm12
+; AVX1OR2-NEXT: vaddps %ymm12, %ymm11, %ymm11
+; AVX1OR2-NEXT: vbroadcastss 144(%rbp), %ymm12
+; AVX1OR2-NEXT: vmulps %ymm0, %ymm12, %ymm12
+; AVX1OR2-NEXT: vbroadcastss 148(%rbp), %ymm13
+; AVX1OR2-NEXT: vmulps %ymm1, %ymm13, %ymm13
+; AVX1OR2-NEXT: vaddps %ymm13, %ymm12, %ymm12
+; AVX1OR2-NEXT: vbroadcastss 152(%rbp), %ymm13
+; AVX1OR2-NEXT: vmulps %ymm2, %ymm13, %ymm13
+; AVX1OR2-NEXT: vaddps %ymm13, %ymm12, %ymm12
+; AVX1OR2-NEXT: vbroadcastss 156(%rbp), %ymm13
+; AVX1OR2-NEXT: vmulps %ymm3, %ymm13, %ymm13
+; AVX1OR2-NEXT: vaddps %ymm13, %ymm12, %ymm12
+; AVX1OR2-NEXT: vbroadcastss 160(%rbp), %ymm13
+; AVX1OR2-NEXT: vmulps %ymm4, %ymm13, %ymm13
+; AVX1OR2-NEXT: vaddps %ymm13, %ymm12, %ymm12
+; AVX1OR2-NEXT: vbroadcastss 164(%rbp), %ymm13
+; AVX1OR2-NEXT: vmulps %ymm5, %ymm13, %ymm13
+; AVX1OR2-NEXT: vaddps %ymm13, %ymm12, %ymm12
+; AVX1OR2-NEXT: vbroadcastss 168(%rbp), %ymm13
+; AVX1OR2-NEXT: vmulps %ymm6, %ymm13, %ymm13
+; AVX1OR2-NEXT: vaddps %ymm13, %ymm12, %ymm12
+; AVX1OR2-NEXT: vbroadcastss 172(%rbp), %ymm13
+; AVX1OR2-NEXT: vmulps %ymm7, %ymm13, %ymm13
+; AVX1OR2-NEXT: vaddps %ymm13, %ymm12, %ymm12
+; AVX1OR2-NEXT: vbroadcastss 176(%rbp), %ymm13
+; AVX1OR2-NEXT: vmulps %ymm0, %ymm13, %ymm13
+; AVX1OR2-NEXT: vbroadcastss 180(%rbp), %ymm14
+; AVX1OR2-NEXT: vmulps %ymm1, %ymm14, %ymm14
+; AVX1OR2-NEXT: vaddps %ymm14, %ymm13, %ymm13
+; AVX1OR2-NEXT: vbroadcastss 184(%rbp), %ymm14
+; AVX1OR2-NEXT: vmulps %ymm2, %ymm14, %ymm14
+; AVX1OR2-NEXT: vaddps %ymm14, %ymm13, %ymm13
+; AVX1OR2-NEXT: vbroadcastss 188(%rbp), %ymm14
+; AVX1OR2-NEXT: vmulps %ymm3, %ymm14, %ymm14
+; AVX1OR2-NEXT: vaddps %ymm14, %ymm13, %ymm13
+; AVX1OR2-NEXT: vbroadcastss 192(%rbp), %ymm14
+; AVX1OR2-NEXT: vmulps %ymm4, %ymm14, %ymm14
+; AVX1OR2-NEXT: vaddps %ymm14, %ymm13, %ymm13
+; AVX1OR2-NEXT: vbroadcastss 196(%rbp), %ymm14
+; AVX1OR2-NEXT: vmulps %ymm5, %ymm14, %ymm14
+; AVX1OR2-NEXT: vaddps %ymm14, %ymm13, %ymm13
+; AVX1OR2-NEXT: vbroadcastss 200(%rbp), %ymm14
+; AVX1OR2-NEXT: vmulps %ymm6, %ymm14, %ymm14
+; AVX1OR2-NEXT: vaddps %ymm14, %ymm13, %ymm13
+; AVX1OR2-NEXT: vbroadcastss 204(%rbp), %ymm14
+; AVX1OR2-NEXT: vmulps %ymm7, %ymm14, %ymm14
+; AVX1OR2-NEXT: vaddps %ymm14, %ymm13, %ymm13
+; AVX1OR2-NEXT: vbroadcastss 208(%rbp), %ymm14
+; AVX1OR2-NEXT: vmulps %ymm0, %ymm14, %ymm14
+; AVX1OR2-NEXT: vbroadcastss 212(%rbp), %ymm15
+; AVX1OR2-NEXT: vmulps %ymm1, %ymm15, %ymm15
+; AVX1OR2-NEXT: vaddps %ymm15, %ymm14, %ymm14
+; AVX1OR2-NEXT: vbroadcastss 216(%rbp), %ymm15
+; AVX1OR2-NEXT: vmulps %ymm2, %ymm15, %ymm15
+; AVX1OR2-NEXT: vaddps %ymm15, %ymm14, %ymm14
+; AVX1OR2-NEXT: vbroadcastss 220(%rbp), %ymm15
+; AVX1OR2-NEXT: vmulps %ymm3, %ymm15, %ymm15
+; AVX1OR2-NEXT: vaddps %ymm15, %ymm14, %ymm14
+; AVX1OR2-NEXT: vbroadcastss 224(%rbp), %ymm15
+; AVX1OR2-NEXT: vmulps %ymm4, %ymm15, %ymm15
+; AVX1OR2-NEXT: vaddps %ymm15, %ymm14, %ymm14
+; AVX1OR2-NEXT: vbroadcastss 228(%rbp), %ymm15
+; AVX1OR2-NEXT: vmulps %ymm5, %ymm15, %ymm15
+; AVX1OR2-NEXT: vaddps %ymm15, %ymm14, %ymm14
+; AVX1OR2-NEXT: vbroadcastss 232(%rbp), %ymm15
+; AVX1OR2-NEXT: vmulps %ymm6, %ymm15, %ymm15
+; AVX1OR2-NEXT: vaddps %ymm15, %ymm14, %ymm14
+; AVX1OR2-NEXT: vbroadcastss 236(%rbp), %ymm15
+; AVX1OR2-NEXT: vmulps %ymm7, %ymm15, %ymm15
+; AVX1OR2-NEXT: vaddps %ymm15, %ymm14, %ymm14
+; AVX1OR2-NEXT: vbroadcastss 240(%rbp), %ymm15
+; AVX1OR2-NEXT: vmulps %ymm0, %ymm15, %ymm0
+; AVX1OR2-NEXT: vbroadcastss 244(%rbp), %ymm15
+; AVX1OR2-NEXT: vmulps %ymm1, %ymm15, %ymm1
+; AVX1OR2-NEXT: vaddps %ymm1, %ymm0, %ymm0
+; AVX1OR2-NEXT: vbroadcastss 248(%rbp), %ymm1
+; AVX1OR2-NEXT: vmulps %ymm1, %ymm2, %ymm1
+; AVX1OR2-NEXT: vaddps %ymm1, %ymm0, %ymm0
+; AVX1OR2-NEXT: vbroadcastss 252(%rbp), %ymm1
+; AVX1OR2-NEXT: vmulps %ymm1, %ymm3, %ymm1
+; AVX1OR2-NEXT: vaddps %ymm1, %ymm0, %ymm0
+; AVX1OR2-NEXT: vbroadcastss 256(%rbp), %ymm1
+; AVX1OR2-NEXT: vmulps %ymm1, %ymm4, %ymm1
+; AVX1OR2-NEXT: vaddps %ymm1, %ymm0, %ymm0
+; AVX1OR2-NEXT: vbroadcastss 260(%rbp), %ymm1
+; AVX1OR2-NEXT: vmulps %ymm1, %ymm5, %ymm1
+; AVX1OR2-NEXT: vaddps %ymm1, %ymm0, %ymm0
+; AVX1OR2-NEXT: vbroadcastss 264(%rbp), %ymm1
+; AVX1OR2-NEXT: vmulps %ymm1, %ymm6, %ymm1
+; AVX1OR2-NEXT: vaddps %ymm1, %ymm0, %ymm0
+; AVX1OR2-NEXT: vbroadcastss 268(%rbp), %ymm1
+; AVX1OR2-NEXT: vmulps %ymm1, %ymm7, %ymm1
+; AVX1OR2-NEXT: vaddps %ymm1, %ymm0, %ymm0
+; AVX1OR2-NEXT: vmovaps %ymm0, 224(%rdi)
+; AVX1OR2-NEXT: vmovaps %ymm14, 192(%rdi)
+; AVX1OR2-NEXT: vmovaps %ymm13, 160(%rdi)
+; AVX1OR2-NEXT: vmovaps %ymm12, 128(%rdi)
+; AVX1OR2-NEXT: vmovaps %ymm11, 96(%rdi)
+; AVX1OR2-NEXT: vmovaps %ymm10, 64(%rdi)
+; AVX1OR2-NEXT: vmovaps %ymm9, 32(%rdi)
+; AVX1OR2-NEXT: vmovaps %ymm8, (%rdi)
+; AVX1OR2-NEXT: movq %rbp, %rsp
+; AVX1OR2-NEXT: popq %rbp
+; AVX1OR2-NEXT: vzeroupper
+; AVX1OR2-NEXT: retq
;
; AVX512F-LABEL: test_mul8x8_f32:
; AVX512F: # %bb.0: # %entry
@@ -4226,803 +4022,404 @@ define <64 x double> @test_mul8x8_f64(<64 x double> %a0, <64 x double> %a1) noun
; SSE-NEXT: addq $328, %rsp # imm = 0x148
; SSE-NEXT: retq
;
-; AVX1-LABEL: test_mul8x8_f64:
-; AVX1: # %bb.0: # %entry
-; AVX1-NEXT: pushq %rbp
-; AVX1-NEXT: movq %rsp, %rbp
-; AVX1-NEXT: andq $-32, %rsp
-; AVX1-NEXT: subq $448, %rsp # imm = 0x1C0
-; AVX1-NEXT: vmovapd %ymm2, %ymm12
-; AVX1-NEXT: vmovapd %ymm0, (%rsp) # 32-byte Spill
-; AVX1-NEXT: movq %rdi, %rax
-; AVX1-NEXT: vmovapd 144(%rbp), %ymm13
-; AVX1-NEXT: vmovapd 112(%rbp), %ymm14
-; AVX1-NEXT: vbroadcastsd 272(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm1, %ymm10, %ymm8
-; AVX1-NEXT: vmovapd %ymm1, %ymm9
-; AVX1-NEXT: vmulpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 280(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm3, %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm11, %ymm8, %ymm1
-; AVX1-NEXT: vmulpd %ymm2, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 288(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm4, %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmulpd %ymm5, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 296(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm7, %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmulpd %ymm6, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 304(%rbp), %ymm10
-; AVX1-NEXT: vmulpd 16(%rbp), %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmulpd 48(%rbp), %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 312(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm10, %ymm14, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmulpd 80(%rbp), %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 320(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm10, %ymm13, %ymm11
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmulpd 176(%rbp), %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 328(%rbp), %ymm10
-; AVX1-NEXT: vmulpd 240(%rbp), %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX1-NEXT: vmulpd 208(%rbp), %ymm10, %ymm1
-; AVX1-NEXT: vaddpd %ymm1, %ymm0, %ymm0
-; AVX1-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX1-NEXT: vbroadcastsd 336(%rbp), %ymm0
-; AVX1-NEXT: vmulpd %ymm0, %ymm9, %ymm1
-; AVX1-NEXT: vbroadcastsd 344(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm3, %ymm10, %ymm11
-; AVX1-NEXT: vmovapd %ymm3, %ymm8
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmovapd (%rsp), %ymm15 # 32-byte Reload
-; AVX1-NEXT: vmulpd %ymm0, %ymm15, %ymm0
-; AVX1-NEXT: vmulpd %ymm2, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 352(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm4, %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmulpd %ymm5, %ymm10, %ymm10
-; AVX1-NEXT: vmovapd %ymm5, %ymm3
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 360(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm7, %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmulpd %ymm6, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 368(%rbp), %ymm10
-; AVX1-NEXT: vmovapd 16(%rbp), %ymm2
-; AVX1-NEXT: vmulpd %ymm2, %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmulpd 48(%rbp), %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 376(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm10, %ymm14, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmovapd 80(%rbp), %ymm2
-; AVX1-NEXT: vmulpd %ymm2, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 384(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm10, %ymm13, %ymm11
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmovapd 176(%rbp), %ymm14
-; AVX1-NEXT: vmulpd %ymm10, %ymm14, %ymm10
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 392(%rbp), %ymm10
-; AVX1-NEXT: vmovapd 240(%rbp), %ymm2
-; AVX1-NEXT: vmulpd %ymm2, %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX1-NEXT: vmulpd 208(%rbp), %ymm10, %ymm1
-; AVX1-NEXT: vaddpd %ymm1, %ymm0, %ymm0
-; AVX1-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX1-NEXT: vbroadcastsd 400(%rbp), %ymm0
-; AVX1-NEXT: vmulpd %ymm0, %ymm9, %ymm1
-; AVX1-NEXT: vbroadcastsd 408(%rbp), %ymm10
-; AVX1-NEXT: vmovapd %ymm8, %ymm5
-; AVX1-NEXT: vmulpd %ymm10, %ymm8, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmulpd %ymm0, %ymm15, %ymm0
-; AVX1-NEXT: vmulpd %ymm10, %ymm12, %ymm10
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 416(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm4, %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmulpd %ymm3, %ymm10, %ymm10
-; AVX1-NEXT: vmovapd %ymm3, %ymm2
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 424(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm7, %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmulpd %ymm6, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 432(%rbp), %ymm10
-; AVX1-NEXT: vmulpd 16(%rbp), %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmulpd 48(%rbp), %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 440(%rbp), %ymm10
-; AVX1-NEXT: vmulpd 112(%rbp), %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmulpd 80(%rbp), %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 448(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm10, %ymm13, %ymm11
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmulpd %ymm10, %ymm14, %ymm10
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 456(%rbp), %ymm10
-; AVX1-NEXT: vmulpd 240(%rbp), %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX1-NEXT: vmulpd 208(%rbp), %ymm10, %ymm1
-; AVX1-NEXT: vaddpd %ymm1, %ymm0, %ymm0
-; AVX1-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX1-NEXT: vbroadcastsd 464(%rbp), %ymm0
-; AVX1-NEXT: vmulpd %ymm0, %ymm9, %ymm1
-; AVX1-NEXT: vmovapd %ymm9, %ymm13
-; AVX1-NEXT: vbroadcastsd 472(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm10, %ymm8, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmulpd %ymm0, %ymm15, %ymm0
-; AVX1-NEXT: vmovapd %ymm15, %ymm9
-; AVX1-NEXT: vmulpd %ymm10, %ymm12, %ymm10
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 480(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm4, %ymm10, %ymm11
-; AVX1-NEXT: vmovapd %ymm4, %ymm3
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmovapd %ymm2, %ymm15
-; AVX1-NEXT: vmulpd %ymm2, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 488(%rbp), %ymm10
-; AVX1-NEXT: vmovapd %ymm7, %ymm8
-; AVX1-NEXT: vmulpd %ymm7, %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmovapd %ymm6, %ymm7
-; AVX1-NEXT: vmulpd %ymm6, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 496(%rbp), %ymm10
-; AVX1-NEXT: vmulpd 16(%rbp), %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmovapd 48(%rbp), %ymm4
-; AVX1-NEXT: vmulpd %ymm4, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 504(%rbp), %ymm10
-; AVX1-NEXT: vmovapd 112(%rbp), %ymm2
-; AVX1-NEXT: vmulpd %ymm2, %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmovapd 80(%rbp), %ymm14
-; AVX1-NEXT: vmulpd %ymm10, %ymm14, %ymm10
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 512(%rbp), %ymm10
-; AVX1-NEXT: vmulpd 144(%rbp), %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmovapd 176(%rbp), %ymm2
-; AVX1-NEXT: vmulpd %ymm2, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 520(%rbp), %ymm10
-; AVX1-NEXT: vmulpd 240(%rbp), %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX1-NEXT: vmulpd 208(%rbp), %ymm10, %ymm1
-; AVX1-NEXT: vaddpd %ymm1, %ymm0, %ymm0
-; AVX1-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX1-NEXT: vbroadcastsd 528(%rbp), %ymm0
-; AVX1-NEXT: vmulpd %ymm0, %ymm13, %ymm1
-; AVX1-NEXT: vbroadcastsd 536(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm5, %ymm10, %ymm11
-; AVX1-NEXT: vmovapd %ymm5, %ymm6
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmulpd %ymm0, %ymm9, %ymm0
-; AVX1-NEXT: vmulpd %ymm10, %ymm12, %ymm10
-; AVX1-NEXT: vmovapd %ymm12, %ymm5
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 544(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm3, %ymm10, %ymm11
-; AVX1-NEXT: vmovapd %ymm3, %ymm12
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmulpd %ymm10, %ymm15, %ymm10
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 552(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm10, %ymm8, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmulpd %ymm7, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 560(%rbp), %ymm10
-; AVX1-NEXT: vmulpd 16(%rbp), %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmulpd %ymm4, %ymm10, %ymm10
-; AVX1-NEXT: vmovapd %ymm4, %ymm3
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 568(%rbp), %ymm10
-; AVX1-NEXT: vmulpd 112(%rbp), %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmulpd %ymm10, %ymm14, %ymm10
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 576(%rbp), %ymm10
-; AVX1-NEXT: vmovapd 144(%rbp), %ymm4
-; AVX1-NEXT: vmulpd %ymm4, %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmulpd %ymm2, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 584(%rbp), %ymm10
-; AVX1-NEXT: vmovapd 240(%rbp), %ymm14
-; AVX1-NEXT: vmulpd %ymm10, %ymm14, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX1-NEXT: vmovapd 208(%rbp), %ymm2
-; AVX1-NEXT: vmulpd %ymm2, %ymm10, %ymm1
-; AVX1-NEXT: vaddpd %ymm1, %ymm0, %ymm0
-; AVX1-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX1-NEXT: vbroadcastsd 592(%rbp), %ymm0
-; AVX1-NEXT: vmulpd %ymm0, %ymm13, %ymm1
-; AVX1-NEXT: vbroadcastsd 600(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm6, %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmulpd %ymm0, %ymm9, %ymm0
-; AVX1-NEXT: vmulpd %ymm5, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 608(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm10, %ymm12, %ymm11
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmulpd %ymm10, %ymm15, %ymm10
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 616(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm10, %ymm8, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmulpd %ymm7, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 624(%rbp), %ymm10
-; AVX1-NEXT: vmulpd 16(%rbp), %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmulpd %ymm3, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 632(%rbp), %ymm10
-; AVX1-NEXT: vmovapd 112(%rbp), %ymm3
-; AVX1-NEXT: vmulpd %ymm3, %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmovapd 80(%rbp), %ymm3
-; AVX1-NEXT: vmulpd %ymm3, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX1-NEXT: vbroadcastsd 640(%rbp), %ymm10
-; AVX1-NEXT: vmulpd %ymm4, %ymm10, %ymm11
-; AVX1-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX1-NEXT: vmovapd 176(%rbp), %ymm3
-; AVX1-NEXT: vmulpd %ymm3, %ymm10, %ymm10
-; AVX1-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX1-NEXT: vbroadcastsd 648(%rbp), %ymm10
-; AVX1-NEXT: vmovapd %ymm14, %ymm4
-; AVX1-NEXT: vmulpd %ymm10, %ymm14, %ymm11
-; AVX1-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX1-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX1-NEXT: vmulpd %ymm2, %ymm10, %ymm1
-; AVX1-NEXT: vaddpd %ymm1, %ymm0, %ymm0
-; AVX1-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX1-NEXT: vbroadcastsd 656(%rbp), %ymm2
-; AVX1-NEXT: vmovapd %ymm13, %ymm3
-; AVX1-NEXT: vmulpd %ymm2, %ymm13, %ymm1
-; AVX1-NEXT: vbroadcastsd 664(%rbp), %ymm0
-; AVX1-NEXT: vmulpd %ymm0, %ymm6, %ymm14
-; AVX1-NEXT: vmovapd %ymm6, %ymm10
-; AVX1-NEXT: vaddpd %ymm1, %ymm14, %ymm1
-; AVX1-NEXT: vmulpd %ymm2, %ymm9, %ymm2
-; AVX1-NEXT: vmulpd %ymm0, %ymm5, %ymm0
-; AVX1-NEXT: vmovapd %ymm5, %ymm6
-; AVX1-NEXT: vaddpd %ymm0, %ymm2, %ymm0
-; AVX1-NEXT: vbroadcastsd 672(%rbp), %ymm2
-; AVX1-NEXT: vmulpd %ymm2, %ymm12, %ymm14
-; AVX1-NEXT: vaddpd %ymm0, %ymm14, %ymm0
-; AVX1-NEXT: vmulpd %ymm2, %ymm15, %ymm2
-; AVX1-NEXT: vaddpd %ymm2, %ymm1, %ymm1
-; AVX1-NEXT: vbroadcastsd 680(%rbp), %ymm2
-; AVX1-NEXT: vmulpd %ymm2, %ymm8, %ymm14
-; AVX1-NEXT: vaddpd %ymm1, %ymm14, %ymm1
-; AVX1-NEXT: vmulpd %ymm2, %ymm7, %ymm2
-; AVX1-NEXT: vaddpd %ymm2, %ymm0, %ymm0
-; AVX1-NEXT: vbroadcastsd 688(%rbp), %ymm2
-; AVX1-NEXT: vmovapd 16(%rbp), %ymm11
-; AVX1-NEXT: vmulpd %ymm2, %ymm11, %ymm14
-; AVX1-NEXT: vaddpd %ymm0, %ymm14, %ymm0
-; AVX1-NEXT: vmulpd 48(%rbp), %ymm2, %ymm2
-; AVX1-NEXT: vaddpd %ymm2, %ymm1, %ymm1
-; AVX1-NEXT: vbroadcastsd 696(%rbp), %ymm2
-; AVX1-NEXT: vmovapd 112(%rbp), %ymm5
-; AVX1-NEXT: vmulpd %ymm2, %ymm5, %ymm14
-; AVX1-NEXT: vaddpd %ymm1, %ymm14, %ymm1
-; AVX1-NEXT: vmovapd 80(%rbp), %ymm5
-; AVX1-NEXT: vmulpd %ymm2, %ymm5, %ymm2
-; AVX1-NEXT: vaddpd %ymm2, %ymm0, %ymm0
-; AVX1-NEXT: vbroadcastsd 704(%rbp), %ymm2
-; AVX1-NEXT: vmulpd 144(%rbp), %ymm2, %ymm14
-; AVX1-NEXT: vaddpd %ymm0, %ymm14, %ymm0
-; AVX1-NEXT: vmovapd 176(%rbp), %ymm13
-; AVX1-NEXT: vmulpd %ymm2, %ymm13, %ymm2
-; AVX1-NEXT: vaddpd %ymm2, %ymm1, %ymm1
-; AVX1-NEXT: vbroadcastsd 712(%rbp), %ymm2
-; AVX1-NEXT: vmulpd %ymm2, %ymm4, %ymm14
-; AVX1-NEXT: vaddpd %ymm1, %ymm14, %ymm1
-; AVX1-NEXT: vmovapd 208(%rbp), %ymm14
-; AVX1-NEXT: vmulpd %ymm2, %ymm14, %ymm2
-; AVX1-NEXT: vaddpd %ymm2, %ymm0, %ymm0
-; AVX1-NEXT: vbroadcastsd 720(%rbp), %ymm2
-; AVX1-NEXT: vmulpd %ymm2, %ymm3, %ymm3
-; AVX1-NEXT: vmulpd %ymm2, %ymm9, %ymm2
-; AVX1-NEXT: vbroadcastsd 728(%rbp), %ymm4
-; AVX1-NEXT: vmulpd %ymm4, %ymm10, %ymm5
-; AVX1-NEXT: vaddpd %ymm5, %ymm3, %ymm3
-; AVX1-NEXT: vmulpd %ymm4, %ymm6, %ymm4
-; AVX1-NEXT: vaddpd %ymm4, %ymm2, %ymm2
-; AVX1-NEXT: vbroadcastsd 736(%rbp), %ymm4
-; AVX1-NEXT: vmulpd %ymm4, %ymm12, %ymm5
-; AVX1-NEXT: vaddpd %ymm5, %ymm2, %ymm2
-; AVX1-NEXT: vmulpd %ymm4, %ymm15, %ymm4
-; AVX1-NEXT: vaddpd %ymm4, %ymm3, %ymm3
-; AVX1-NEXT: vbroadcastsd 744(%rbp), %ymm4
-; AVX1-NEXT: vmulpd %ymm4, %ymm8, %ymm5
-; AVX1-NEXT: vaddpd %ymm5, %ymm3, %ymm3
-; AVX1-NEXT: vmulpd %ymm4, %ymm7, %ymm4
-; AVX1-NEXT: vaddpd %ymm4, %ymm2, %ymm2
-; AVX1-NEXT: vbroadcastsd 752(%rbp), %ymm4
-; AVX1-NEXT: vmulpd %ymm4, %ymm11, %ymm5
-; AVX1-NEXT: vaddpd %ymm5, %ymm2, %ymm2
-; AVX1-NEXT: vmulpd 48(%rbp), %ymm4, %ymm4
-; AVX1-NEXT: vaddpd %ymm4, %ymm3, %ymm3
-; AVX1-NEXT: vbroadcastsd 760(%rbp), %ymm4
-; AVX1-NEXT: vmulpd 112(%rbp), %ymm4, %ymm5
-; AVX1-NEXT: vaddpd %ymm5, %ymm3, %ymm3
-; AVX1-NEXT: vmulpd 80(%rbp), %ymm4, %ymm4
-; AVX1-NEXT: vaddpd %ymm4, %ymm2, %ymm2
-; AVX1-NEXT: vbroadcastsd 768(%rbp), %ymm4
-; AVX1-NEXT: vmulpd 144(%rbp), %ymm4, %ymm5
-; AVX1-NEXT: vaddpd %ymm5, %ymm2, %ymm2
-; AVX1-NEXT: vmulpd %ymm4, %ymm13, %ymm4
-; AVX1-NEXT: vaddpd %ymm4, %ymm3, %ymm3
-; AVX1-NEXT: vbroadcastsd 776(%rbp), %ymm4
-; AVX1-NEXT: vmulpd 240(%rbp), %ymm4, %ymm5
-; AVX1-NEXT: vaddpd %ymm5, %ymm3, %ymm3
-; AVX1-NEXT: vmulpd %ymm4, %ymm14, %ymm4
-; AVX1-NEXT: vaddpd %ymm4, %ymm2, %ymm2
-; AVX1-NEXT: vmovapd %ymm3, 480(%rdi)
-; AVX1-NEXT: vmovapd %ymm2, 448(%rdi)
-; AVX1-NEXT: vmovapd %ymm1, 416(%rdi)
-; AVX1-NEXT: vmovapd %ymm0, 384(%rdi)
-; AVX1-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX1-NEXT: vmovaps %ymm0, 352(%rdi)
-; AVX1-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX1-NEXT: vmovaps %ymm0, 320(%rdi)
-; AVX1-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX1-NEXT: vmovaps %ymm0, 288(%rdi)
-; AVX1-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX1-NEXT: vmovaps %ymm0, 256(%rdi)
-; AVX1-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX1-NEXT: vmovaps %ymm0, 224(%rdi)
-; AVX1-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX1-NEXT: vmovaps %ymm0, 192(%rdi)
-; AVX1-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX1-NEXT: vmovaps %ymm0, 160(%rdi)
-; AVX1-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX1-NEXT: vmovaps %ymm0, 128(%rdi)
-; AVX1-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX1-NEXT: vmovaps %ymm0, 96(%rdi)
-; AVX1-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX1-NEXT: vmovaps %ymm0, 64(%rdi)
-; AVX1-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX1-NEXT: vmovaps %ymm0, 32(%rdi)
-; AVX1-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX1-NEXT: vmovaps %ymm0, (%rdi)
-; AVX1-NEXT: movq %rbp, %rsp
-; AVX1-NEXT: popq %rbp
-; AVX1-NEXT: vzeroupper
-; AVX1-NEXT: retq
-;
-; AVX2-LABEL: test_mul8x8_f64:
-; AVX2: # %bb.0: # %entry
-; AVX2-NEXT: pushq %rbp
-; AVX2-NEXT: movq %rsp, %rbp
-; AVX2-NEXT: andq $-32, %rsp
-; AVX2-NEXT: subq $448, %rsp # imm = 0x1C0
-; AVX2-NEXT: vmovapd %ymm2, %ymm12
-; AVX2-NEXT: vmovapd %ymm0, (%rsp) # 32-byte Spill
-; AVX2-NEXT: movq %rdi, %rax
-; AVX2-NEXT: vmovapd 144(%rbp), %ymm13
-; AVX2-NEXT: vmovapd 112(%rbp), %ymm14
-; AVX2-NEXT: vbroadcastsd 272(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm1, %ymm10, %ymm8
-; AVX2-NEXT: vmovapd %ymm1, %ymm9
-; AVX2-NEXT: vmulpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 280(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm3, %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm11, %ymm8, %ymm1
-; AVX2-NEXT: vmulpd %ymm2, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 288(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm4, %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmulpd %ymm5, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 296(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm7, %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmulpd %ymm6, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 304(%rbp), %ymm10
-; AVX2-NEXT: vmulpd 16(%rbp), %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmulpd 48(%rbp), %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 312(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm10, %ymm14, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmulpd 80(%rbp), %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 320(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm10, %ymm13, %ymm11
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmulpd 176(%rbp), %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 328(%rbp), %ymm10
-; AVX2-NEXT: vmulpd 240(%rbp), %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX2-NEXT: vmulpd 208(%rbp), %ymm10, %ymm1
-; AVX2-NEXT: vaddpd %ymm1, %ymm0, %ymm0
-; AVX2-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX2-NEXT: vbroadcastsd 336(%rbp), %ymm0
-; AVX2-NEXT: vmulpd %ymm0, %ymm9, %ymm1
-; AVX2-NEXT: vbroadcastsd 344(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm3, %ymm10, %ymm11
-; AVX2-NEXT: vmovapd %ymm3, %ymm8
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmovapd (%rsp), %ymm15 # 32-byte Reload
-; AVX2-NEXT: vmulpd %ymm0, %ymm15, %ymm0
-; AVX2-NEXT: vmulpd %ymm2, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 352(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm4, %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmulpd %ymm5, %ymm10, %ymm10
-; AVX2-NEXT: vmovapd %ymm5, %ymm3
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 360(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm7, %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmulpd %ymm6, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 368(%rbp), %ymm10
-; AVX2-NEXT: vmovapd 16(%rbp), %ymm2
-; AVX2-NEXT: vmulpd %ymm2, %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmulpd 48(%rbp), %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 376(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm10, %ymm14, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmovapd 80(%rbp), %ymm2
-; AVX2-NEXT: vmulpd %ymm2, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 384(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm10, %ymm13, %ymm11
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmovapd 176(%rbp), %ymm14
-; AVX2-NEXT: vmulpd %ymm10, %ymm14, %ymm10
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 392(%rbp), %ymm10
-; AVX2-NEXT: vmovapd 240(%rbp), %ymm2
-; AVX2-NEXT: vmulpd %ymm2, %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX2-NEXT: vmulpd 208(%rbp), %ymm10, %ymm1
-; AVX2-NEXT: vaddpd %ymm1, %ymm0, %ymm0
-; AVX2-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX2-NEXT: vbroadcastsd 400(%rbp), %ymm0
-; AVX2-NEXT: vmulpd %ymm0, %ymm9, %ymm1
-; AVX2-NEXT: vbroadcastsd 408(%rbp), %ymm10
-; AVX2-NEXT: vmovapd %ymm8, %ymm5
-; AVX2-NEXT: vmulpd %ymm10, %ymm8, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmulpd %ymm0, %ymm15, %ymm0
-; AVX2-NEXT: vmulpd %ymm10, %ymm12, %ymm10
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 416(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm4, %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmulpd %ymm3, %ymm10, %ymm10
-; AVX2-NEXT: vmovapd %ymm3, %ymm2
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 424(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm7, %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmulpd %ymm6, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 432(%rbp), %ymm10
-; AVX2-NEXT: vmulpd 16(%rbp), %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmulpd 48(%rbp), %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 440(%rbp), %ymm10
-; AVX2-NEXT: vmulpd 112(%rbp), %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmulpd 80(%rbp), %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 448(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm10, %ymm13, %ymm11
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmulpd %ymm10, %ymm14, %ymm10
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 456(%rbp), %ymm10
-; AVX2-NEXT: vmulpd 240(%rbp), %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX2-NEXT: vmulpd 208(%rbp), %ymm10, %ymm1
-; AVX2-NEXT: vaddpd %ymm1, %ymm0, %ymm0
-; AVX2-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX2-NEXT: vbroadcastsd 464(%rbp), %ymm0
-; AVX2-NEXT: vmulpd %ymm0, %ymm9, %ymm1
-; AVX2-NEXT: vmovapd %ymm9, %ymm13
-; AVX2-NEXT: vbroadcastsd 472(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm10, %ymm8, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmulpd %ymm0, %ymm15, %ymm0
-; AVX2-NEXT: vmovapd %ymm15, %ymm9
-; AVX2-NEXT: vmulpd %ymm10, %ymm12, %ymm10
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 480(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm4, %ymm10, %ymm11
-; AVX2-NEXT: vmovapd %ymm4, %ymm3
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmovapd %ymm2, %ymm15
-; AVX2-NEXT: vmulpd %ymm2, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 488(%rbp), %ymm10
-; AVX2-NEXT: vmovapd %ymm7, %ymm8
-; AVX2-NEXT: vmulpd %ymm7, %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmovapd %ymm6, %ymm7
-; AVX2-NEXT: vmulpd %ymm6, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 496(%rbp), %ymm10
-; AVX2-NEXT: vmulpd 16(%rbp), %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmovapd 48(%rbp), %ymm4
-; AVX2-NEXT: vmulpd %ymm4, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 504(%rbp), %ymm10
-; AVX2-NEXT: vmovapd 112(%rbp), %ymm2
-; AVX2-NEXT: vmulpd %ymm2, %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmovapd 80(%rbp), %ymm14
-; AVX2-NEXT: vmulpd %ymm10, %ymm14, %ymm10
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 512(%rbp), %ymm10
-; AVX2-NEXT: vmulpd 144(%rbp), %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmovapd 176(%rbp), %ymm2
-; AVX2-NEXT: vmulpd %ymm2, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 520(%rbp), %ymm10
-; AVX2-NEXT: vmulpd 240(%rbp), %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX2-NEXT: vmulpd 208(%rbp), %ymm10, %ymm1
-; AVX2-NEXT: vaddpd %ymm1, %ymm0, %ymm0
-; AVX2-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX2-NEXT: vbroadcastsd 528(%rbp), %ymm0
-; AVX2-NEXT: vmulpd %ymm0, %ymm13, %ymm1
-; AVX2-NEXT: vbroadcastsd 536(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm5, %ymm10, %ymm11
-; AVX2-NEXT: vmovapd %ymm5, %ymm6
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmulpd %ymm0, %ymm9, %ymm0
-; AVX2-NEXT: vmulpd %ymm10, %ymm12, %ymm10
-; AVX2-NEXT: vmovapd %ymm12, %ymm5
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 544(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm3, %ymm10, %ymm11
-; AVX2-NEXT: vmovapd %ymm3, %ymm12
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmulpd %ymm10, %ymm15, %ymm10
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 552(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm10, %ymm8, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmulpd %ymm7, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 560(%rbp), %ymm10
-; AVX2-NEXT: vmulpd 16(%rbp), %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmulpd %ymm4, %ymm10, %ymm10
-; AVX2-NEXT: vmovapd %ymm4, %ymm3
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 568(%rbp), %ymm10
-; AVX2-NEXT: vmulpd 112(%rbp), %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmulpd %ymm10, %ymm14, %ymm10
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 576(%rbp), %ymm10
-; AVX2-NEXT: vmovapd 144(%rbp), %ymm4
-; AVX2-NEXT: vmulpd %ymm4, %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmulpd %ymm2, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 584(%rbp), %ymm10
-; AVX2-NEXT: vmovapd 240(%rbp), %ymm14
-; AVX2-NEXT: vmulpd %ymm10, %ymm14, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX2-NEXT: vmovapd 208(%rbp), %ymm2
-; AVX2-NEXT: vmulpd %ymm2, %ymm10, %ymm1
-; AVX2-NEXT: vaddpd %ymm1, %ymm0, %ymm0
-; AVX2-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX2-NEXT: vbroadcastsd 592(%rbp), %ymm0
-; AVX2-NEXT: vmulpd %ymm0, %ymm13, %ymm1
-; AVX2-NEXT: vbroadcastsd 600(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm6, %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmulpd %ymm0, %ymm9, %ymm0
-; AVX2-NEXT: vmulpd %ymm5, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 608(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm10, %ymm12, %ymm11
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmulpd %ymm10, %ymm15, %ymm10
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 616(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm10, %ymm8, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmulpd %ymm7, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 624(%rbp), %ymm10
-; AVX2-NEXT: vmulpd 16(%rbp), %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmulpd %ymm3, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 632(%rbp), %ymm10
-; AVX2-NEXT: vmovapd 112(%rbp), %ymm3
-; AVX2-NEXT: vmulpd %ymm3, %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmovapd 80(%rbp), %ymm3
-; AVX2-NEXT: vmulpd %ymm3, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
-; AVX2-NEXT: vbroadcastsd 640(%rbp), %ymm10
-; AVX2-NEXT: vmulpd %ymm4, %ymm10, %ymm11
-; AVX2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
-; AVX2-NEXT: vmovapd 176(%rbp), %ymm3
-; AVX2-NEXT: vmulpd %ymm3, %ymm10, %ymm10
-; AVX2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
-; AVX2-NEXT: vbroadcastsd 648(%rbp), %ymm10
-; AVX2-NEXT: vmovapd %ymm14, %ymm4
-; AVX2-NEXT: vmulpd %ymm10, %ymm14, %ymm11
-; AVX2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
-; AVX2-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX2-NEXT: vmulpd %ymm2, %ymm10, %ymm1
-; AVX2-NEXT: vaddpd %ymm1, %ymm0, %ymm0
-; AVX2-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
-; AVX2-NEXT: vbroadcastsd 656(%rbp), %ymm2
-; AVX2-NEXT: vmovapd %ymm13, %ymm3
-; AVX2-NEXT: vmulpd %ymm2, %ymm13, %ymm1
-; AVX2-NEXT: vbroadcastsd 664(%rbp), %ymm0
-; AVX2-NEXT: vmulpd %ymm0, %ymm6, %ymm14
-; AVX2-NEXT: vmovapd %ymm6, %ymm10
-; AVX2-NEXT: vaddpd %ymm1, %ymm14, %ymm1
-; AVX2-NEXT: vmulpd %ymm2, %ymm9, %ymm2
-; AVX2-NEXT: vmulpd %ymm0, %ymm5, %ymm0
-; AVX2-NEXT: vmovapd %ymm5, %ymm6
-; AVX2-NEXT: vaddpd %ymm0, %ymm2, %ymm0
-; AVX2-NEXT: vbroadcastsd 672(%rbp), %ymm2
-; AVX2-NEXT: vmulpd %ymm2, %ymm12, %ymm14
-; AVX2-NEXT: vaddpd %ymm0, %ymm14, %ymm0
-; AVX2-NEXT: vmulpd %ymm2, %ymm15, %ymm2
-; AVX2-NEXT: vaddpd %ymm2, %ymm1, %ymm1
-; AVX2-NEXT: vbroadcastsd 680(%rbp), %ymm2
-; AVX2-NEXT: vmulpd %ymm2, %ymm8, %ymm14
-; AVX2-NEXT: vaddpd %ymm1, %ymm14, %ymm1
-; AVX2-NEXT: vmulpd %ymm2, %ymm7, %ymm2
-; AVX2-NEXT: vaddpd %ymm2, %ymm0, %ymm0
-; AVX2-NEXT: vbroadcastsd 688(%rbp), %ymm2
-; AVX2-NEXT: vmovapd 16(%rbp), %ymm11
-; AVX2-NEXT: vmulpd %ymm2, %ymm11, %ymm14
-; AVX2-NEXT: vaddpd %ymm0, %ymm14, %ymm0
-; AVX2-NEXT: vmulpd 48(%rbp), %ymm2, %ymm2
-; AVX2-NEXT: vaddpd %ymm2, %ymm1, %ymm1
-; AVX2-NEXT: vbroadcastsd 696(%rbp), %ymm2
-; AVX2-NEXT: vmovapd 112(%rbp), %ymm5
-; AVX2-NEXT: vmulpd %ymm2, %ymm5, %ymm14
-; AVX2-NEXT: vaddpd %ymm1, %ymm14, %ymm1
-; AVX2-NEXT: vmovapd 80(%rbp), %ymm5
-; AVX2-NEXT: vmulpd %ymm2, %ymm5, %ymm2
-; AVX2-NEXT: vaddpd %ymm2, %ymm0, %ymm0
-; AVX2-NEXT: vbroadcastsd 704(%rbp), %ymm2
-; AVX2-NEXT: vmulpd 144(%rbp), %ymm2, %ymm14
-; AVX2-NEXT: vaddpd %ymm0, %ymm14, %ymm0
-; AVX2-NEXT: vmovapd 176(%rbp), %ymm13
-; AVX2-NEXT: vmulpd %ymm2, %ymm13, %ymm2
-; AVX2-NEXT: vaddpd %ymm2, %ymm1, %ymm1
-; AVX2-NEXT: vbroadcastsd 712(%rbp), %ymm2
-; AVX2-NEXT: vmulpd %ymm2, %ymm4, %ymm14
-; AVX2-NEXT: vaddpd %ymm1, %ymm14, %ymm1
-; AVX2-NEXT: vmovapd 208(%rbp), %ymm14
-; AVX2-NEXT: vmulpd %ymm2, %ymm14, %ymm2
-; AVX2-NEXT: vaddpd %ymm2, %ymm0, %ymm0
-; AVX2-NEXT: vbroadcastsd 720(%rbp), %ymm2
-; AVX2-NEXT: vmulpd %ymm2, %ymm3, %ymm3
-; AVX2-NEXT: vmulpd %ymm2, %ymm9, %ymm2
-; AVX2-NEXT: vbroadcastsd 728(%rbp), %ymm4
-; AVX2-NEXT: vmulpd %ymm4, %ymm10, %ymm5
-; AVX2-NEXT: vaddpd %ymm5, %ymm3, %ymm3
-; AVX2-NEXT: vmulpd %ymm4, %ymm6, %ymm4
-; AVX2-NEXT: vaddpd %ymm4, %ymm2, %ymm2
-; AVX2-NEXT: vbroadcastsd 736(%rbp), %ymm4
-; AVX2-NEXT: vmulpd %ymm4, %ymm12, %ymm5
-; AVX2-NEXT: vaddpd %ymm5, %ymm2, %ymm2
-; AVX2-NEXT: vmulpd %ymm4, %ymm15, %ymm4
-; AVX2-NEXT: vaddpd %ymm4, %ymm3, %ymm3
-; AVX2-NEXT: vbroadcastsd 744(%rbp), %ymm4
-; AVX2-NEXT: vmulpd %ymm4, %ymm8, %ymm5
-; AVX2-NEXT: vaddpd %ymm5, %ymm3, %ymm3
-; AVX2-NEXT: vmulpd %ymm4, %ymm7, %ymm4
-; AVX2-NEXT: vaddpd %ymm4, %ymm2, %ymm2
-; AVX2-NEXT: vbroadcastsd 752(%rbp), %ymm4
-; AVX2-NEXT: vmulpd %ymm4, %ymm11, %ymm5
-; AVX2-NEXT: vaddpd %ymm5, %ymm2, %ymm2
-; AVX2-NEXT: vmulpd 48(%rbp), %ymm4, %ymm4
-; AVX2-NEXT: vaddpd %ymm4, %ymm3, %ymm3
-; AVX2-NEXT: vbroadcastsd 760(%rbp), %ymm4
-; AVX2-NEXT: vmulpd 112(%rbp), %ymm4, %ymm5
-; AVX2-NEXT: vaddpd %ymm5, %ymm3, %ymm3
-; AVX2-NEXT: vmulpd 80(%rbp), %ymm4, %ymm4
-; AVX2-NEXT: vaddpd %ymm4, %ymm2, %ymm2
-; AVX2-NEXT: vbroadcastsd 768(%rbp), %ymm4
-; AVX2-NEXT: vmulpd 144(%rbp), %ymm4, %ymm5
-; AVX2-NEXT: vaddpd %ymm5, %ymm2, %ymm2
-; AVX2-NEXT: vmulpd %ymm4, %ymm13, %ymm4
-; AVX2-NEXT: vaddpd %ymm4, %ymm3, %ymm3
-; AVX2-NEXT: vbroadcastsd 776(%rbp), %ymm4
-; AVX2-NEXT: vmulpd 240(%rbp), %ymm4, %ymm5
-; AVX2-NEXT: vaddpd %ymm5, %ymm3, %ymm3
-; AVX2-NEXT: vmulpd %ymm4, %ymm14, %ymm4
-; AVX2-NEXT: vaddpd %ymm4, %ymm2, %ymm2
-; AVX2-NEXT: vmovapd %ymm3, 480(%rdi)
-; AVX2-NEXT: vmovapd %ymm2, 448(%rdi)
-; AVX2-NEXT: vmovapd %ymm1, 416(%rdi)
-; AVX2-NEXT: vmovapd %ymm0, 384(%rdi)
-; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX2-NEXT: vmovaps %ymm0, 352(%rdi)
-; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX2-NEXT: vmovaps %ymm0, 320(%rdi)
-; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX2-NEXT: vmovaps %ymm0, 288(%rdi)
-; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX2-NEXT: vmovaps %ymm0, 256(%rdi)
-; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX2-NEXT: vmovaps %ymm0, 224(%rdi)
-; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX2-NEXT: vmovaps %ymm0, 192(%rdi)
-; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX2-NEXT: vmovaps %ymm0, 160(%rdi)
-; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX2-NEXT: vmovaps %ymm0, 128(%rdi)
-; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX2-NEXT: vmovaps %ymm0, 96(%rdi)
-; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX2-NEXT: vmovaps %ymm0, 64(%rdi)
-; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX2-NEXT: vmovaps %ymm0, 32(%rdi)
-; AVX2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
-; AVX2-NEXT: vmovaps %ymm0, (%rdi)
-; AVX2-NEXT: movq %rbp, %rsp
-; AVX2-NEXT: popq %rbp
-; AVX2-NEXT: vzeroupper
-; AVX2-NEXT: retq
+; AVX1OR2-LABEL: test_mul8x8_f64:
+; AVX1OR2: # %bb.0: # %entry
+; AVX1OR2-NEXT: pushq %rbp
+; AVX1OR2-NEXT: movq %rsp, %rbp
+; AVX1OR2-NEXT: andq $-32, %rsp
+; AVX1OR2-NEXT: subq $448, %rsp # imm = 0x1C0
+; AVX1OR2-NEXT: vmovapd %ymm2, %ymm12
+; AVX1OR2-NEXT: vmovapd %ymm0, (%rsp) # 32-byte Spill
+; AVX1OR2-NEXT: movq %rdi, %rax
+; AVX1OR2-NEXT: vmovapd 144(%rbp), %ymm13
+; AVX1OR2-NEXT: vmovapd 112(%rbp), %ymm14
+; AVX1OR2-NEXT: vbroadcastsd 272(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm1, %ymm10, %ymm8
+; AVX1OR2-NEXT: vmovapd %ymm1, %ymm9
+; AVX1OR2-NEXT: vmulpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 280(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm3, %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm11, %ymm8, %ymm1
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 288(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm4, %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm5, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 296(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm7, %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmulpd %ymm6, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 304(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd 16(%rbp), %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmulpd 48(%rbp), %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 312(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm14, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmulpd 80(%rbp), %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 320(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm13, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmulpd 176(%rbp), %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 328(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd 240(%rbp), %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
+; AVX1OR2-NEXT: vmulpd 208(%rbp), %ymm10, %ymm1
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm0, %ymm0
+; AVX1OR2-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
+; AVX1OR2-NEXT: vbroadcastsd 336(%rbp), %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm0, %ymm9, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 344(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm3, %ymm10, %ymm11
+; AVX1OR2-NEXT: vmovapd %ymm3, %ymm8
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmovapd (%rsp), %ymm15 # 32-byte Reload
+; AVX1OR2-NEXT: vmulpd %ymm0, %ymm15, %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 352(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm4, %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm5, %ymm10, %ymm10
+; AVX1OR2-NEXT: vmovapd %ymm5, %ymm3
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 360(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm7, %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmulpd %ymm6, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 368(%rbp), %ymm10
+; AVX1OR2-NEXT: vmovapd 16(%rbp), %ymm2
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmulpd 48(%rbp), %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 376(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm14, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmovapd 80(%rbp), %ymm2
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 384(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm13, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmovapd 176(%rbp), %ymm14
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm14, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 392(%rbp), %ymm10
+; AVX1OR2-NEXT: vmovapd 240(%rbp), %ymm2
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
+; AVX1OR2-NEXT: vmulpd 208(%rbp), %ymm10, %ymm1
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm0, %ymm0
+; AVX1OR2-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
+; AVX1OR2-NEXT: vbroadcastsd 400(%rbp), %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm0, %ymm9, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 408(%rbp), %ymm10
+; AVX1OR2-NEXT: vmovapd %ymm8, %ymm5
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm8, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmulpd %ymm0, %ymm15, %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm12, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 416(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm4, %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm3, %ymm10, %ymm10
+; AVX1OR2-NEXT: vmovapd %ymm3, %ymm2
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 424(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm7, %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmulpd %ymm6, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 432(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd 16(%rbp), %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmulpd 48(%rbp), %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 440(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd 112(%rbp), %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmulpd 80(%rbp), %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 448(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm13, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm14, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 456(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd 240(%rbp), %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
+; AVX1OR2-NEXT: vmulpd 208(%rbp), %ymm10, %ymm1
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm0, %ymm0
+; AVX1OR2-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
+; AVX1OR2-NEXT: vbroadcastsd 464(%rbp), %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm0, %ymm9, %ymm1
+; AVX1OR2-NEXT: vmovapd %ymm9, %ymm13
+; AVX1OR2-NEXT: vbroadcastsd 472(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm8, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmulpd %ymm0, %ymm15, %ymm0
+; AVX1OR2-NEXT: vmovapd %ymm15, %ymm9
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm12, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 480(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm4, %ymm10, %ymm11
+; AVX1OR2-NEXT: vmovapd %ymm4, %ymm3
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmovapd %ymm2, %ymm15
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 488(%rbp), %ymm10
+; AVX1OR2-NEXT: vmovapd %ymm7, %ymm8
+; AVX1OR2-NEXT: vmulpd %ymm7, %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmovapd %ymm6, %ymm7
+; AVX1OR2-NEXT: vmulpd %ymm6, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 496(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd 16(%rbp), %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmovapd 48(%rbp), %ymm4
+; AVX1OR2-NEXT: vmulpd %ymm4, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 504(%rbp), %ymm10
+; AVX1OR2-NEXT: vmovapd 112(%rbp), %ymm2
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmovapd 80(%rbp), %ymm14
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm14, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 512(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd 144(%rbp), %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmovapd 176(%rbp), %ymm2
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 520(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd 240(%rbp), %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
+; AVX1OR2-NEXT: vmulpd 208(%rbp), %ymm10, %ymm1
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm0, %ymm0
+; AVX1OR2-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
+; AVX1OR2-NEXT: vbroadcastsd 528(%rbp), %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm0, %ymm13, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 536(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm5, %ymm10, %ymm11
+; AVX1OR2-NEXT: vmovapd %ymm5, %ymm6
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmulpd %ymm0, %ymm9, %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm12, %ymm10
+; AVX1OR2-NEXT: vmovapd %ymm12, %ymm5
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 544(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm3, %ymm10, %ymm11
+; AVX1OR2-NEXT: vmovapd %ymm3, %ymm12
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm15, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 552(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm8, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmulpd %ymm7, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 560(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd 16(%rbp), %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm4, %ymm10, %ymm10
+; AVX1OR2-NEXT: vmovapd %ymm4, %ymm3
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 568(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd 112(%rbp), %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm14, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 576(%rbp), %ymm10
+; AVX1OR2-NEXT: vmovapd 144(%rbp), %ymm4
+; AVX1OR2-NEXT: vmulpd %ymm4, %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 584(%rbp), %ymm10
+; AVX1OR2-NEXT: vmovapd 240(%rbp), %ymm14
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm14, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
+; AVX1OR2-NEXT: vmovapd 208(%rbp), %ymm2
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm10, %ymm1
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm0, %ymm0
+; AVX1OR2-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
+; AVX1OR2-NEXT: vbroadcastsd 592(%rbp), %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm0, %ymm13, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 600(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm6, %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmulpd %ymm0, %ymm9, %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm5, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 608(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm12, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm15, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 616(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm8, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmulpd %ymm7, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 624(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd 16(%rbp), %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm3, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 632(%rbp), %ymm10
+; AVX1OR2-NEXT: vmovapd 112(%rbp), %ymm3
+; AVX1OR2-NEXT: vmulpd %ymm3, %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmovapd 80(%rbp), %ymm3
+; AVX1OR2-NEXT: vmulpd %ymm3, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm10, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 640(%rbp), %ymm10
+; AVX1OR2-NEXT: vmulpd %ymm4, %ymm10, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm11, %ymm0
+; AVX1OR2-NEXT: vmovapd 176(%rbp), %ymm3
+; AVX1OR2-NEXT: vmulpd %ymm3, %ymm10, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm10, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 648(%rbp), %ymm10
+; AVX1OR2-NEXT: vmovapd %ymm14, %ymm4
+; AVX1OR2-NEXT: vmulpd %ymm10, %ymm14, %ymm11
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm11, %ymm1
+; AVX1OR2-NEXT: vmovapd %ymm1, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm10, %ymm1
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm0, %ymm0
+; AVX1OR2-NEXT: vmovapd %ymm0, {{[-0-9]+}}(%r{{[sb]}}p) # 32-byte Spill
+; AVX1OR2-NEXT: vbroadcastsd 656(%rbp), %ymm2
+; AVX1OR2-NEXT: vmovapd %ymm13, %ymm3
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm13, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 664(%rbp), %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm0, %ymm6, %ymm14
+; AVX1OR2-NEXT: vmovapd %ymm6, %ymm10
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm14, %ymm1
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm9, %ymm2
+; AVX1OR2-NEXT: vmulpd %ymm0, %ymm5, %ymm0
+; AVX1OR2-NEXT: vmovapd %ymm5, %ymm6
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm2, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 672(%rbp), %ymm2
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm12, %ymm14
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm14, %ymm0
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm15, %ymm2
+; AVX1OR2-NEXT: vaddpd %ymm2, %ymm1, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 680(%rbp), %ymm2
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm8, %ymm14
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm14, %ymm1
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm7, %ymm2
+; AVX1OR2-NEXT: vaddpd %ymm2, %ymm0, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 688(%rbp), %ymm2
+; AVX1OR2-NEXT: vmovapd 16(%rbp), %ymm11
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm11, %ymm14
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm14, %ymm0
+; AVX1OR2-NEXT: vmulpd 48(%rbp), %ymm2, %ymm2
+; AVX1OR2-NEXT: vaddpd %ymm2, %ymm1, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 696(%rbp), %ymm2
+; AVX1OR2-NEXT: vmovapd 112(%rbp), %ymm5
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm5, %ymm14
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm14, %ymm1
+; AVX1OR2-NEXT: vmovapd 80(%rbp), %ymm5
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm5, %ymm2
+; AVX1OR2-NEXT: vaddpd %ymm2, %ymm0, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 704(%rbp), %ymm2
+; AVX1OR2-NEXT: vmulpd 144(%rbp), %ymm2, %ymm14
+; AVX1OR2-NEXT: vaddpd %ymm0, %ymm14, %ymm0
+; AVX1OR2-NEXT: vmovapd 176(%rbp), %ymm13
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm13, %ymm2
+; AVX1OR2-NEXT: vaddpd %ymm2, %ymm1, %ymm1
+; AVX1OR2-NEXT: vbroadcastsd 712(%rbp), %ymm2
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm4, %ymm14
+; AVX1OR2-NEXT: vaddpd %ymm1, %ymm14, %ymm1
+; AVX1OR2-NEXT: vmovapd 208(%rbp), %ymm14
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm14, %ymm2
+; AVX1OR2-NEXT: vaddpd %ymm2, %ymm0, %ymm0
+; AVX1OR2-NEXT: vbroadcastsd 720(%rbp), %ymm2
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm3, %ymm3
+; AVX1OR2-NEXT: vmulpd %ymm2, %ymm9, %ymm2
+; AVX1OR2-NEXT: vbroadcastsd 728(%rbp), %ymm4
+; AVX1OR2-NEXT: vmulpd %ymm4, %ymm10, %ymm5
+; AVX1OR2-NEXT: vaddpd %ymm5, %ymm3, %ymm3
+; AVX1OR2-NEXT: vmulpd %ymm4, %ymm6, %ymm4
+; AVX1OR2-NEXT: vaddpd %ymm4, %ymm2, %ymm2
+; AVX1OR2-NEXT: vbroadcastsd 736(%rbp), %ymm4
+; AVX1OR2-NEXT: vmulpd %ymm4, %ymm12, %ymm5
+; AVX1OR2-NEXT: vaddpd %ymm5, %ymm2, %ymm2
+; AVX1OR2-NEXT: vmulpd %ymm4, %ymm15, %ymm4
+; AVX1OR2-NEXT: vaddpd %ymm4, %ymm3, %ymm3
+; AVX1OR2-NEXT: vbroadcastsd 744(%rbp), %ymm4
+; AVX1OR2-NEXT: vmulpd %ymm4, %ymm8, %ymm5
+; AVX1OR2-NEXT: vaddpd %ymm5, %ymm3, %ymm3
+; AVX1OR2-NEXT: vmulpd %ymm4, %ymm7, %ymm4
+; AVX1OR2-NEXT: vaddpd %ymm4, %ymm2, %ymm2
+; AVX1OR2-NEXT: vbroadcastsd 752(%rbp), %ymm4
+; AVX1OR2-NEXT: vmulpd %ymm4, %ymm11, %ymm5
+; AVX1OR2-NEXT: vaddpd %ymm5, %ymm2, %ymm2
+; AVX1OR2-NEXT: vmulpd 48(%rbp), %ymm4, %ymm4
+; AVX1OR2-NEXT: vaddpd %ymm4, %ymm3, %ymm3
+; AVX1OR2-NEXT: vbroadcastsd 760(%rbp), %ymm4
+; AVX1OR2-NEXT: vmulpd 112(%rbp), %ymm4, %ymm5
+; AVX1OR2-NEXT: vaddpd %ymm5, %ymm3, %ymm3
+; AVX1OR2-NEXT: vmulpd 80(%rbp), %ymm4, %ymm4
+; AVX1OR2-NEXT: vaddpd %ymm4, %ymm2, %ymm2
+; AVX1OR2-NEXT: vbroadcastsd 768(%rbp), %ymm4
+; AVX1OR2-NEXT: vmulpd 144(%rbp), %ymm4, %ymm5
+; AVX1OR2-NEXT: vaddpd %ymm5, %ymm2, %ymm2
+; AVX1OR2-NEXT: vmulpd %ymm4, %ymm13, %ymm4
+; AVX1OR2-NEXT: vaddpd %ymm4, %ymm3, %ymm3
+; AVX1OR2-NEXT: vbroadcastsd 776(%rbp), %ymm4
+; AVX1OR2-NEXT: vmulpd 240(%rbp), %ymm4, %ymm5
+; AVX1OR2-NEXT: vaddpd %ymm5, %ymm3, %ymm3
+; AVX1OR2-NEXT: vmulpd %ymm4, %ymm14, %ymm4
+; AVX1OR2-NEXT: vaddpd %ymm4, %ymm2, %ymm2
+; AVX1OR2-NEXT: vmovapd %ymm3, 480(%rdi)
+; AVX1OR2-NEXT: vmovapd %ymm2, 448(%rdi)
+; AVX1OR2-NEXT: vmovapd %ymm1, 416(%rdi)
+; AVX1OR2-NEXT: vmovapd %ymm0, 384(%rdi)
+; AVX1OR2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
+; AVX1OR2-NEXT: vmovaps %ymm0, 352(%rdi)
+; AVX1OR2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
+; AVX1OR2-NEXT: vmovaps %ymm0, 320(%rdi)
+; AVX1OR2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
+; AVX1OR2-NEXT: vmovaps %ymm0, 288(%rdi)
+; AVX1OR2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
+; AVX1OR2-NEXT: vmovaps %ymm0, 256(%rdi)
+; AVX1OR2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
+; AVX1OR2-NEXT: vmovaps %ymm0, 224(%rdi)
+; AVX1OR2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
+; AVX1OR2-NEXT: vmovaps %ymm0, 192(%rdi)
+; AVX1OR2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
+; AVX1OR2-NEXT: vmovaps %ymm0, 160(%rdi)
+; AVX1OR2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
+; AVX1OR2-NEXT: vmovaps %ymm0, 128(%rdi)
+; AVX1OR2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
+; AVX1OR2-NEXT: vmovaps %ymm0, 96(%rdi)
+; AVX1OR2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
+; AVX1OR2-NEXT: vmovaps %ymm0, 64(%rdi)
+; AVX1OR2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
+; AVX1OR2-NEXT: vmovaps %ymm0, 32(%rdi)
+; AVX1OR2-NEXT: vmovaps {{[-0-9]+}}(%r{{[sb]}}p), %ymm0 # 32-byte Reload
+; AVX1OR2-NEXT: vmovaps %ymm0, (%rdi)
+; AVX1OR2-NEXT: movq %rbp, %rsp
+; AVX1OR2-NEXT: popq %rbp
+; AVX1OR2-NEXT: vzeroupper
+; AVX1OR2-NEXT: retq
;
; AVX512-LABEL: test_mul8x8_f64:
; AVX512: # %bb.0: # %entry
More information about the llvm-commits
mailing list