1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2 ; RUN: llc %s -O0 -mtriple=x86_64-unknown-unknown -mattr=+avx512f -o - | FileCheck %s
4 declare fastcc <38 x double> @test()
6 define void @pr34653() {
7 ; CHECK-LABEL: pr34653:
8 ; CHECK: # %bb.0: # %entry
9 ; CHECK-NEXT: pushq %rbp
10 ; CHECK-NEXT: .cfi_def_cfa_offset 16
11 ; CHECK-NEXT: .cfi_offset %rbp, -16
12 ; CHECK-NEXT: movq %rsp, %rbp
13 ; CHECK-NEXT: .cfi_def_cfa_register %rbp
14 ; CHECK-NEXT: andq $-512, %rsp # imm = 0xFE00
15 ; CHECK-NEXT: subq $1024, %rsp # imm = 0x400
16 ; CHECK-NEXT: movq %rsp, %rdi
17 ; CHECK-NEXT: callq test@PLT
18 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
19 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
20 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
21 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
22 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
23 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
24 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
25 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
26 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
27 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
28 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
29 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
30 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
31 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
32 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
33 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
34 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
35 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
36 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
37 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
38 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
39 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
40 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
41 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
42 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
43 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
44 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
45 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
46 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
47 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
48 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
49 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
50 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
51 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
52 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
53 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
54 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
55 ; CHECK-NEXT: vmovsd {{.*#+}} xmm0 = mem[0],zero
56 ; CHECK-NEXT: movq %rbp, %rsp
57 ; CHECK-NEXT: popq %rbp
58 ; CHECK-NEXT: .cfi_def_cfa %rsp, 8
61 %v = call fastcc <38 x double> @test()
62 %v.0 = extractelement <38 x double> %v, i32 0