Home | History | Annotate | Download | only in X86
      1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
      2 ; RUN: llc -verify-machineinstrs -mtriple=x86_64-apple-macosx -show-mc-encoding -mcpu=knl < %s | FileCheck %s -check-prefix=CHECK64 -check-prefix=CHECK64-KNL
      3 ; RUN: llc -verify-machineinstrs -mtriple=x86_64-apple-macosx -show-mc-encoding -mcpu=skx < %s | FileCheck %s -check-prefix=CHECK64 -check-prefix=CHECK64-SKX
      4 ; RUN: llc -verify-machineinstrs -mtriple=i386-apple-macosx -show-mc-encoding -mcpu=knl < %s | FileCheck %s -check-prefix=CHECK32 -check-prefix=CHECK32-KNL
      5 ; RUN: llc -verify-machineinstrs -mtriple=i386-apple-macosx -show-mc-encoding -mcpu=skx < %s | FileCheck %s -check-prefix=CHECK32 -check-prefix=CHECK32-SKX
      6 
      7 ; Make sure we spill the high numbered zmm registers and K registers with the right encoding.
      8 
      9 define x86_intrcc void @foo(i8* %frame) {
     10 ; CHECK64-KNL-LABEL: foo:
     11 ; CHECK64-KNL:       ## %bb.0:
     12 ; CHECK64-KNL-NEXT:    pushq %rax ## encoding: [0x50]
     13 ; CHECK64-KNL-NEXT:    .cfi_def_cfa_offset 16
     14 ; CHECK64-KNL-NEXT:    pushq %r11 ## encoding: [0x41,0x53]
     15 ; CHECK64-KNL-NEXT:    .cfi_def_cfa_offset 24
     16 ; CHECK64-KNL-NEXT:    pushq %r10 ## encoding: [0x41,0x52]
     17 ; CHECK64-KNL-NEXT:    .cfi_def_cfa_offset 32
     18 ; CHECK64-KNL-NEXT:    pushq %r9 ## encoding: [0x41,0x51]
     19 ; CHECK64-KNL-NEXT:    .cfi_def_cfa_offset 40
     20 ; CHECK64-KNL-NEXT:    pushq %r8 ## encoding: [0x41,0x50]
     21 ; CHECK64-KNL-NEXT:    .cfi_def_cfa_offset 48
     22 ; CHECK64-KNL-NEXT:    pushq %rdi ## encoding: [0x57]
     23 ; CHECK64-KNL-NEXT:    .cfi_def_cfa_offset 56
     24 ; CHECK64-KNL-NEXT:    pushq %rsi ## encoding: [0x56]
     25 ; CHECK64-KNL-NEXT:    .cfi_def_cfa_offset 64
     26 ; CHECK64-KNL-NEXT:    pushq %rdx ## encoding: [0x52]
     27 ; CHECK64-KNL-NEXT:    .cfi_def_cfa_offset 72
     28 ; CHECK64-KNL-NEXT:    pushq %rcx ## encoding: [0x51]
     29 ; CHECK64-KNL-NEXT:    .cfi_def_cfa_offset 80
     30 ; CHECK64-KNL-NEXT:    subq $2096, %rsp ## encoding: [0x48,0x81,0xec,0x30,0x08,0x00,0x00]
     31 ; CHECK64-KNL-NEXT:    ## imm = 0x830
     32 ; CHECK64-KNL-NEXT:    kmovw %k7, {{[0-9]+}}(%rsp) ## 2-byte Spill
     33 ; CHECK64-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x91,0xbc,0x24,0x2e,0x08,0x00,0x00]
     34 ; CHECK64-KNL-NEXT:    kmovw %k6, {{[0-9]+}}(%rsp) ## 2-byte Spill
     35 ; CHECK64-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x91,0xb4,0x24,0x2c,0x08,0x00,0x00]
     36 ; CHECK64-KNL-NEXT:    kmovw %k5, {{[0-9]+}}(%rsp) ## 2-byte Spill
     37 ; CHECK64-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x91,0xac,0x24,0x2a,0x08,0x00,0x00]
     38 ; CHECK64-KNL-NEXT:    kmovw %k4, {{[0-9]+}}(%rsp) ## 2-byte Spill
     39 ; CHECK64-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x91,0xa4,0x24,0x28,0x08,0x00,0x00]
     40 ; CHECK64-KNL-NEXT:    kmovw %k3, {{[0-9]+}}(%rsp) ## 2-byte Spill
     41 ; CHECK64-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x91,0x9c,0x24,0x26,0x08,0x00,0x00]
     42 ; CHECK64-KNL-NEXT:    kmovw %k2, {{[0-9]+}}(%rsp) ## 2-byte Spill
     43 ; CHECK64-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x91,0x94,0x24,0x24,0x08,0x00,0x00]
     44 ; CHECK64-KNL-NEXT:    kmovw %k1, {{[0-9]+}}(%rsp) ## 2-byte Spill
     45 ; CHECK64-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x91,0x8c,0x24,0x22,0x08,0x00,0x00]
     46 ; CHECK64-KNL-NEXT:    kmovw %k0, {{[0-9]+}}(%rsp) ## 2-byte Spill
     47 ; CHECK64-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x91,0x84,0x24,0x20,0x08,0x00,0x00]
     48 ; CHECK64-KNL-NEXT:    vmovups %zmm31, {{[0-9]+}}(%rsp) ## 64-byte Spill
     49 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x11,0x7c,0x24,0x1f]
     50 ; CHECK64-KNL-NEXT:    vmovups %zmm30, {{[0-9]+}}(%rsp) ## 64-byte Spill
     51 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x11,0x74,0x24,0x1e]
     52 ; CHECK64-KNL-NEXT:    vmovups %zmm29, {{[0-9]+}}(%rsp) ## 64-byte Spill
     53 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x11,0x6c,0x24,0x1d]
     54 ; CHECK64-KNL-NEXT:    vmovups %zmm28, {{[0-9]+}}(%rsp) ## 64-byte Spill
     55 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x11,0x64,0x24,0x1c]
     56 ; CHECK64-KNL-NEXT:    vmovups %zmm27, {{[0-9]+}}(%rsp) ## 64-byte Spill
     57 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x11,0x5c,0x24,0x1b]
     58 ; CHECK64-KNL-NEXT:    vmovups %zmm26, {{[0-9]+}}(%rsp) ## 64-byte Spill
     59 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x11,0x54,0x24,0x1a]
     60 ; CHECK64-KNL-NEXT:    vmovups %zmm25, {{[0-9]+}}(%rsp) ## 64-byte Spill
     61 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x11,0x4c,0x24,0x19]
     62 ; CHECK64-KNL-NEXT:    vmovups %zmm24, {{[0-9]+}}(%rsp) ## 64-byte Spill
     63 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x11,0x44,0x24,0x18]
     64 ; CHECK64-KNL-NEXT:    vmovups %zmm23, {{[0-9]+}}(%rsp) ## 64-byte Spill
     65 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x11,0x7c,0x24,0x17]
     66 ; CHECK64-KNL-NEXT:    vmovups %zmm22, {{[0-9]+}}(%rsp) ## 64-byte Spill
     67 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x11,0x74,0x24,0x16]
     68 ; CHECK64-KNL-NEXT:    vmovups %zmm21, {{[0-9]+}}(%rsp) ## 64-byte Spill
     69 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x11,0x6c,0x24,0x15]
     70 ; CHECK64-KNL-NEXT:    vmovups %zmm20, {{[0-9]+}}(%rsp) ## 64-byte Spill
     71 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x11,0x64,0x24,0x14]
     72 ; CHECK64-KNL-NEXT:    vmovups %zmm19, {{[0-9]+}}(%rsp) ## 64-byte Spill
     73 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x11,0x5c,0x24,0x13]
     74 ; CHECK64-KNL-NEXT:    vmovups %zmm18, {{[0-9]+}}(%rsp) ## 64-byte Spill
     75 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x11,0x54,0x24,0x12]
     76 ; CHECK64-KNL-NEXT:    vmovups %zmm17, {{[0-9]+}}(%rsp) ## 64-byte Spill
     77 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x11,0x4c,0x24,0x11]
     78 ; CHECK64-KNL-NEXT:    vmovups %zmm16, {{[0-9]+}}(%rsp) ## 64-byte Spill
     79 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x11,0x44,0x24,0x10]
     80 ; CHECK64-KNL-NEXT:    vmovups %zmm15, {{[0-9]+}}(%rsp) ## 64-byte Spill
     81 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x11,0x7c,0x24,0x0f]
     82 ; CHECK64-KNL-NEXT:    vmovups %zmm14, {{[0-9]+}}(%rsp) ## 64-byte Spill
     83 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x11,0x74,0x24,0x0e]
     84 ; CHECK64-KNL-NEXT:    vmovups %zmm13, {{[0-9]+}}(%rsp) ## 64-byte Spill
     85 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x11,0x6c,0x24,0x0d]
     86 ; CHECK64-KNL-NEXT:    vmovups %zmm12, {{[0-9]+}}(%rsp) ## 64-byte Spill
     87 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x11,0x64,0x24,0x0c]
     88 ; CHECK64-KNL-NEXT:    vmovups %zmm11, {{[0-9]+}}(%rsp) ## 64-byte Spill
     89 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x11,0x5c,0x24,0x0b]
     90 ; CHECK64-KNL-NEXT:    vmovups %zmm10, {{[0-9]+}}(%rsp) ## 64-byte Spill
     91 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x11,0x54,0x24,0x0a]
     92 ; CHECK64-KNL-NEXT:    vmovups %zmm9, {{[0-9]+}}(%rsp) ## 64-byte Spill
     93 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x11,0x4c,0x24,0x09]
     94 ; CHECK64-KNL-NEXT:    vmovups %zmm8, {{[0-9]+}}(%rsp) ## 64-byte Spill
     95 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x11,0x44,0x24,0x08]
     96 ; CHECK64-KNL-NEXT:    vmovups %zmm7, {{[0-9]+}}(%rsp) ## 64-byte Spill
     97 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x7c,0x24,0x07]
     98 ; CHECK64-KNL-NEXT:    vmovups %zmm6, {{[0-9]+}}(%rsp) ## 64-byte Spill
     99 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x74,0x24,0x06]
    100 ; CHECK64-KNL-NEXT:    vmovups %zmm5, {{[0-9]+}}(%rsp) ## 64-byte Spill
    101 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x6c,0x24,0x05]
    102 ; CHECK64-KNL-NEXT:    vmovups %zmm4, {{[0-9]+}}(%rsp) ## 64-byte Spill
    103 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x64,0x24,0x04]
    104 ; CHECK64-KNL-NEXT:    vmovups %zmm3, {{[0-9]+}}(%rsp) ## 64-byte Spill
    105 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x5c,0x24,0x03]
    106 ; CHECK64-KNL-NEXT:    vmovups %zmm2, {{[0-9]+}}(%rsp) ## 64-byte Spill
    107 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x54,0x24,0x02]
    108 ; CHECK64-KNL-NEXT:    vmovups %zmm1, {{[0-9]+}}(%rsp) ## 64-byte Spill
    109 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x4c,0x24,0x01]
    110 ; CHECK64-KNL-NEXT:    vmovups %zmm0, (%rsp) ## 64-byte Spill
    111 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x04,0x24]
    112 ; CHECK64-KNL-NEXT:    .cfi_def_cfa_offset 2176
    113 ; CHECK64-KNL-NEXT:    .cfi_offset %rcx, -80
    114 ; CHECK64-KNL-NEXT:    .cfi_offset %rdx, -72
    115 ; CHECK64-KNL-NEXT:    .cfi_offset %rsi, -64
    116 ; CHECK64-KNL-NEXT:    .cfi_offset %rdi, -56
    117 ; CHECK64-KNL-NEXT:    .cfi_offset %r8, -48
    118 ; CHECK64-KNL-NEXT:    .cfi_offset %r9, -40
    119 ; CHECK64-KNL-NEXT:    .cfi_offset %r10, -32
    120 ; CHECK64-KNL-NEXT:    .cfi_offset %r11, -24
    121 ; CHECK64-KNL-NEXT:    .cfi_offset %rax, -16
    122 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm0, -2176
    123 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm1, -2112
    124 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm2, -2048
    125 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm3, -1984
    126 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm4, -1920
    127 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm5, -1856
    128 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm6, -1792
    129 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm7, -1728
    130 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm8, -1664
    131 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm9, -1600
    132 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm10, -1536
    133 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm11, -1472
    134 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm12, -1408
    135 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm13, -1344
    136 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm14, -1280
    137 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm15, -1216
    138 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm16, -1152
    139 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm17, -1088
    140 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm18, -1024
    141 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm19, -960
    142 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm20, -896
    143 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm21, -832
    144 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm22, -768
    145 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm23, -704
    146 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm24, -640
    147 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm25, -576
    148 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm26, -512
    149 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm27, -448
    150 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm28, -384
    151 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm29, -320
    152 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm30, -256
    153 ; CHECK64-KNL-NEXT:    .cfi_offset %xmm31, -192
    154 ; CHECK64-KNL-NEXT:    .cfi_offset %k0, -96
    155 ; CHECK64-KNL-NEXT:    .cfi_offset %k1, -94
    156 ; CHECK64-KNL-NEXT:    .cfi_offset %k2, -92
    157 ; CHECK64-KNL-NEXT:    .cfi_offset %k3, -90
    158 ; CHECK64-KNL-NEXT:    .cfi_offset %k4, -88
    159 ; CHECK64-KNL-NEXT:    .cfi_offset %k5, -86
    160 ; CHECK64-KNL-NEXT:    .cfi_offset %k6, -84
    161 ; CHECK64-KNL-NEXT:    .cfi_offset %k7, -82
    162 ; CHECK64-KNL-NEXT:    cld ## encoding: [0xfc]
    163 ; CHECK64-KNL-NEXT:    callq _bar ## encoding: [0xe8,A,A,A,A]
    164 ; CHECK64-KNL-NEXT:    ## fixup A - offset: 1, value: _bar-4, kind: reloc_branch_4byte_pcrel
    165 ; CHECK64-KNL-NEXT:    vmovups (%rsp), %zmm0 ## 64-byte Reload
    166 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x04,0x24]
    167 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm1 ## 64-byte Reload
    168 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x4c,0x24,0x01]
    169 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm2 ## 64-byte Reload
    170 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x54,0x24,0x02]
    171 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm3 ## 64-byte Reload
    172 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x5c,0x24,0x03]
    173 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm4 ## 64-byte Reload
    174 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x64,0x24,0x04]
    175 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm5 ## 64-byte Reload
    176 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x6c,0x24,0x05]
    177 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm6 ## 64-byte Reload
    178 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x74,0x24,0x06]
    179 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm7 ## 64-byte Reload
    180 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x7c,0x24,0x07]
    181 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm8 ## 64-byte Reload
    182 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x10,0x44,0x24,0x08]
    183 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm9 ## 64-byte Reload
    184 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x10,0x4c,0x24,0x09]
    185 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm10 ## 64-byte Reload
    186 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x10,0x54,0x24,0x0a]
    187 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm11 ## 64-byte Reload
    188 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x10,0x5c,0x24,0x0b]
    189 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm12 ## 64-byte Reload
    190 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x10,0x64,0x24,0x0c]
    191 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm13 ## 64-byte Reload
    192 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x10,0x6c,0x24,0x0d]
    193 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm14 ## 64-byte Reload
    194 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x10,0x74,0x24,0x0e]
    195 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm15 ## 64-byte Reload
    196 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x10,0x7c,0x24,0x0f]
    197 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm16 ## 64-byte Reload
    198 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x10,0x44,0x24,0x10]
    199 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm17 ## 64-byte Reload
    200 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x10,0x4c,0x24,0x11]
    201 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm18 ## 64-byte Reload
    202 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x10,0x54,0x24,0x12]
    203 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm19 ## 64-byte Reload
    204 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x10,0x5c,0x24,0x13]
    205 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm20 ## 64-byte Reload
    206 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x10,0x64,0x24,0x14]
    207 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm21 ## 64-byte Reload
    208 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x10,0x6c,0x24,0x15]
    209 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm22 ## 64-byte Reload
    210 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x10,0x74,0x24,0x16]
    211 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm23 ## 64-byte Reload
    212 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x10,0x7c,0x24,0x17]
    213 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm24 ## 64-byte Reload
    214 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x10,0x44,0x24,0x18]
    215 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm25 ## 64-byte Reload
    216 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x10,0x4c,0x24,0x19]
    217 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm26 ## 64-byte Reload
    218 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x10,0x54,0x24,0x1a]
    219 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm27 ## 64-byte Reload
    220 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x10,0x5c,0x24,0x1b]
    221 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm28 ## 64-byte Reload
    222 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x10,0x64,0x24,0x1c]
    223 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm29 ## 64-byte Reload
    224 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x10,0x6c,0x24,0x1d]
    225 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm30 ## 64-byte Reload
    226 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x10,0x74,0x24,0x1e]
    227 ; CHECK64-KNL-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm31 ## 64-byte Reload
    228 ; CHECK64-KNL-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x10,0x7c,0x24,0x1f]
    229 ; CHECK64-KNL-NEXT:    kmovw {{[0-9]+}}(%rsp), %k0 ## 2-byte Reload
    230 ; CHECK64-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x90,0x84,0x24,0x20,0x08,0x00,0x00]
    231 ; CHECK64-KNL-NEXT:    kmovw {{[0-9]+}}(%rsp), %k1 ## 2-byte Reload
    232 ; CHECK64-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x90,0x8c,0x24,0x22,0x08,0x00,0x00]
    233 ; CHECK64-KNL-NEXT:    kmovw {{[0-9]+}}(%rsp), %k2 ## 2-byte Reload
    234 ; CHECK64-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x90,0x94,0x24,0x24,0x08,0x00,0x00]
    235 ; CHECK64-KNL-NEXT:    kmovw {{[0-9]+}}(%rsp), %k3 ## 2-byte Reload
    236 ; CHECK64-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x90,0x9c,0x24,0x26,0x08,0x00,0x00]
    237 ; CHECK64-KNL-NEXT:    kmovw {{[0-9]+}}(%rsp), %k4 ## 2-byte Reload
    238 ; CHECK64-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x90,0xa4,0x24,0x28,0x08,0x00,0x00]
    239 ; CHECK64-KNL-NEXT:    kmovw {{[0-9]+}}(%rsp), %k5 ## 2-byte Reload
    240 ; CHECK64-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x90,0xac,0x24,0x2a,0x08,0x00,0x00]
    241 ; CHECK64-KNL-NEXT:    kmovw {{[0-9]+}}(%rsp), %k6 ## 2-byte Reload
    242 ; CHECK64-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x90,0xb4,0x24,0x2c,0x08,0x00,0x00]
    243 ; CHECK64-KNL-NEXT:    kmovw {{[0-9]+}}(%rsp), %k7 ## 2-byte Reload
    244 ; CHECK64-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x90,0xbc,0x24,0x2e,0x08,0x00,0x00]
    245 ; CHECK64-KNL-NEXT:    addq $2096, %rsp ## encoding: [0x48,0x81,0xc4,0x30,0x08,0x00,0x00]
    246 ; CHECK64-KNL-NEXT:    ## imm = 0x830
    247 ; CHECK64-KNL-NEXT:    popq %rcx ## encoding: [0x59]
    248 ; CHECK64-KNL-NEXT:    popq %rdx ## encoding: [0x5a]
    249 ; CHECK64-KNL-NEXT:    popq %rsi ## encoding: [0x5e]
    250 ; CHECK64-KNL-NEXT:    popq %rdi ## encoding: [0x5f]
    251 ; CHECK64-KNL-NEXT:    popq %r8 ## encoding: [0x41,0x58]
    252 ; CHECK64-KNL-NEXT:    popq %r9 ## encoding: [0x41,0x59]
    253 ; CHECK64-KNL-NEXT:    popq %r10 ## encoding: [0x41,0x5a]
    254 ; CHECK64-KNL-NEXT:    popq %r11 ## encoding: [0x41,0x5b]
    255 ; CHECK64-KNL-NEXT:    popq %rax ## encoding: [0x58]
    256 ; CHECK64-KNL-NEXT:    iretq ## encoding: [0x48,0xcf]
    257 ;
    258 ; CHECK64-SKX-LABEL: foo:
    259 ; CHECK64-SKX:       ## %bb.0:
    260 ; CHECK64-SKX-NEXT:    pushq %rax ## encoding: [0x50]
    261 ; CHECK64-SKX-NEXT:    .cfi_def_cfa_offset 16
    262 ; CHECK64-SKX-NEXT:    pushq %r11 ## encoding: [0x41,0x53]
    263 ; CHECK64-SKX-NEXT:    .cfi_def_cfa_offset 24
    264 ; CHECK64-SKX-NEXT:    pushq %r10 ## encoding: [0x41,0x52]
    265 ; CHECK64-SKX-NEXT:    .cfi_def_cfa_offset 32
    266 ; CHECK64-SKX-NEXT:    pushq %r9 ## encoding: [0x41,0x51]
    267 ; CHECK64-SKX-NEXT:    .cfi_def_cfa_offset 40
    268 ; CHECK64-SKX-NEXT:    pushq %r8 ## encoding: [0x41,0x50]
    269 ; CHECK64-SKX-NEXT:    .cfi_def_cfa_offset 48
    270 ; CHECK64-SKX-NEXT:    pushq %rdi ## encoding: [0x57]
    271 ; CHECK64-SKX-NEXT:    .cfi_def_cfa_offset 56
    272 ; CHECK64-SKX-NEXT:    pushq %rsi ## encoding: [0x56]
    273 ; CHECK64-SKX-NEXT:    .cfi_def_cfa_offset 64
    274 ; CHECK64-SKX-NEXT:    pushq %rdx ## encoding: [0x52]
    275 ; CHECK64-SKX-NEXT:    .cfi_def_cfa_offset 72
    276 ; CHECK64-SKX-NEXT:    pushq %rcx ## encoding: [0x51]
    277 ; CHECK64-SKX-NEXT:    .cfi_def_cfa_offset 80
    278 ; CHECK64-SKX-NEXT:    subq $2160, %rsp ## encoding: [0x48,0x81,0xec,0x70,0x08,0x00,0x00]
    279 ; CHECK64-SKX-NEXT:    ## imm = 0x870
    280 ; CHECK64-SKX-NEXT:    kmovq %k7, {{[0-9]+}}(%rsp) ## 8-byte Spill
    281 ; CHECK64-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x91,0xbc,0x24,0x68,0x08,0x00,0x00]
    282 ; CHECK64-SKX-NEXT:    kmovq %k6, {{[0-9]+}}(%rsp) ## 8-byte Spill
    283 ; CHECK64-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x91,0xb4,0x24,0x60,0x08,0x00,0x00]
    284 ; CHECK64-SKX-NEXT:    kmovq %k5, {{[0-9]+}}(%rsp) ## 8-byte Spill
    285 ; CHECK64-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x91,0xac,0x24,0x58,0x08,0x00,0x00]
    286 ; CHECK64-SKX-NEXT:    kmovq %k4, {{[0-9]+}}(%rsp) ## 8-byte Spill
    287 ; CHECK64-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x91,0xa4,0x24,0x50,0x08,0x00,0x00]
    288 ; CHECK64-SKX-NEXT:    kmovq %k3, {{[0-9]+}}(%rsp) ## 8-byte Spill
    289 ; CHECK64-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x91,0x9c,0x24,0x48,0x08,0x00,0x00]
    290 ; CHECK64-SKX-NEXT:    kmovq %k2, {{[0-9]+}}(%rsp) ## 8-byte Spill
    291 ; CHECK64-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x91,0x94,0x24,0x40,0x08,0x00,0x00]
    292 ; CHECK64-SKX-NEXT:    kmovq %k1, {{[0-9]+}}(%rsp) ## 8-byte Spill
    293 ; CHECK64-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x91,0x8c,0x24,0x38,0x08,0x00,0x00]
    294 ; CHECK64-SKX-NEXT:    kmovq %k0, {{[0-9]+}}(%rsp) ## 8-byte Spill
    295 ; CHECK64-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x91,0x84,0x24,0x30,0x08,0x00,0x00]
    296 ; CHECK64-SKX-NEXT:    vmovups %zmm31, {{[0-9]+}}(%rsp) ## 64-byte Spill
    297 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x11,0xbc,0x24,0xe0,0x07,0x00,0x00]
    298 ; CHECK64-SKX-NEXT:    vmovups %zmm30, {{[0-9]+}}(%rsp) ## 64-byte Spill
    299 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x11,0x74,0x24,0x1e]
    300 ; CHECK64-SKX-NEXT:    vmovups %zmm29, {{[0-9]+}}(%rsp) ## 64-byte Spill
    301 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x11,0x6c,0x24,0x1d]
    302 ; CHECK64-SKX-NEXT:    vmovups %zmm28, {{[0-9]+}}(%rsp) ## 64-byte Spill
    303 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x11,0x64,0x24,0x1c]
    304 ; CHECK64-SKX-NEXT:    vmovups %zmm27, {{[0-9]+}}(%rsp) ## 64-byte Spill
    305 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x11,0x5c,0x24,0x1b]
    306 ; CHECK64-SKX-NEXT:    vmovups %zmm26, {{[0-9]+}}(%rsp) ## 64-byte Spill
    307 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x11,0x54,0x24,0x1a]
    308 ; CHECK64-SKX-NEXT:    vmovups %zmm25, {{[0-9]+}}(%rsp) ## 64-byte Spill
    309 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x11,0x4c,0x24,0x19]
    310 ; CHECK64-SKX-NEXT:    vmovups %zmm24, {{[0-9]+}}(%rsp) ## 64-byte Spill
    311 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x11,0x44,0x24,0x18]
    312 ; CHECK64-SKX-NEXT:    vmovups %zmm23, {{[0-9]+}}(%rsp) ## 64-byte Spill
    313 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x11,0x7c,0x24,0x17]
    314 ; CHECK64-SKX-NEXT:    vmovups %zmm22, {{[0-9]+}}(%rsp) ## 64-byte Spill
    315 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x11,0x74,0x24,0x16]
    316 ; CHECK64-SKX-NEXT:    vmovups %zmm21, {{[0-9]+}}(%rsp) ## 64-byte Spill
    317 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x11,0x6c,0x24,0x15]
    318 ; CHECK64-SKX-NEXT:    vmovups %zmm20, {{[0-9]+}}(%rsp) ## 64-byte Spill
    319 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x11,0x64,0x24,0x14]
    320 ; CHECK64-SKX-NEXT:    vmovups %zmm19, {{[0-9]+}}(%rsp) ## 64-byte Spill
    321 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x11,0x5c,0x24,0x13]
    322 ; CHECK64-SKX-NEXT:    vmovups %zmm18, {{[0-9]+}}(%rsp) ## 64-byte Spill
    323 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x11,0x54,0x24,0x12]
    324 ; CHECK64-SKX-NEXT:    vmovups %zmm17, {{[0-9]+}}(%rsp) ## 64-byte Spill
    325 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x11,0x4c,0x24,0x11]
    326 ; CHECK64-SKX-NEXT:    vmovups %zmm16, {{[0-9]+}}(%rsp) ## 64-byte Spill
    327 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x11,0x44,0x24,0x10]
    328 ; CHECK64-SKX-NEXT:    vmovups %zmm15, {{[0-9]+}}(%rsp) ## 64-byte Spill
    329 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x11,0x7c,0x24,0x0f]
    330 ; CHECK64-SKX-NEXT:    vmovups %zmm14, {{[0-9]+}}(%rsp) ## 64-byte Spill
    331 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x11,0x74,0x24,0x0e]
    332 ; CHECK64-SKX-NEXT:    vmovups %zmm13, {{[0-9]+}}(%rsp) ## 64-byte Spill
    333 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x11,0x6c,0x24,0x0d]
    334 ; CHECK64-SKX-NEXT:    vmovups %zmm12, {{[0-9]+}}(%rsp) ## 64-byte Spill
    335 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x11,0x64,0x24,0x0c]
    336 ; CHECK64-SKX-NEXT:    vmovups %zmm11, {{[0-9]+}}(%rsp) ## 64-byte Spill
    337 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x11,0x5c,0x24,0x0b]
    338 ; CHECK64-SKX-NEXT:    vmovups %zmm10, {{[0-9]+}}(%rsp) ## 64-byte Spill
    339 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x11,0x54,0x24,0x0a]
    340 ; CHECK64-SKX-NEXT:    vmovups %zmm9, {{[0-9]+}}(%rsp) ## 64-byte Spill
    341 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x11,0x4c,0x24,0x09]
    342 ; CHECK64-SKX-NEXT:    vmovups %zmm8, {{[0-9]+}}(%rsp) ## 64-byte Spill
    343 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x11,0x44,0x24,0x08]
    344 ; CHECK64-SKX-NEXT:    vmovups %zmm7, {{[0-9]+}}(%rsp) ## 64-byte Spill
    345 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x7c,0x24,0x07]
    346 ; CHECK64-SKX-NEXT:    vmovups %zmm6, {{[0-9]+}}(%rsp) ## 64-byte Spill
    347 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x74,0x24,0x06]
    348 ; CHECK64-SKX-NEXT:    vmovups %zmm5, {{[0-9]+}}(%rsp) ## 64-byte Spill
    349 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x6c,0x24,0x05]
    350 ; CHECK64-SKX-NEXT:    vmovups %zmm4, {{[0-9]+}}(%rsp) ## 64-byte Spill
    351 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x64,0x24,0x04]
    352 ; CHECK64-SKX-NEXT:    vmovups %zmm3, {{[0-9]+}}(%rsp) ## 64-byte Spill
    353 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x5c,0x24,0x03]
    354 ; CHECK64-SKX-NEXT:    vmovups %zmm2, {{[0-9]+}}(%rsp) ## 64-byte Spill
    355 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x54,0x24,0x02]
    356 ; CHECK64-SKX-NEXT:    vmovups %zmm1, {{[0-9]+}}(%rsp) ## 64-byte Spill
    357 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x4c,0x24,0x01]
    358 ; CHECK64-SKX-NEXT:    vmovups %zmm0, (%rsp) ## 64-byte Spill
    359 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x04,0x24]
    360 ; CHECK64-SKX-NEXT:    .cfi_def_cfa_offset 2240
    361 ; CHECK64-SKX-NEXT:    .cfi_offset %rcx, -80
    362 ; CHECK64-SKX-NEXT:    .cfi_offset %rdx, -72
    363 ; CHECK64-SKX-NEXT:    .cfi_offset %rsi, -64
    364 ; CHECK64-SKX-NEXT:    .cfi_offset %rdi, -56
    365 ; CHECK64-SKX-NEXT:    .cfi_offset %r8, -48
    366 ; CHECK64-SKX-NEXT:    .cfi_offset %r9, -40
    367 ; CHECK64-SKX-NEXT:    .cfi_offset %r10, -32
    368 ; CHECK64-SKX-NEXT:    .cfi_offset %r11, -24
    369 ; CHECK64-SKX-NEXT:    .cfi_offset %rax, -16
    370 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm0, -2240
    371 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm1, -2176
    372 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm2, -2112
    373 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm3, -2048
    374 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm4, -1984
    375 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm5, -1920
    376 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm6, -1856
    377 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm7, -1792
    378 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm8, -1728
    379 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm9, -1664
    380 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm10, -1600
    381 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm11, -1536
    382 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm12, -1472
    383 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm13, -1408
    384 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm14, -1344
    385 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm15, -1280
    386 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm16, -1216
    387 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm17, -1152
    388 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm18, -1088
    389 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm19, -1024
    390 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm20, -960
    391 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm21, -896
    392 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm22, -832
    393 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm23, -768
    394 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm24, -704
    395 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm25, -640
    396 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm26, -576
    397 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm27, -512
    398 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm28, -448
    399 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm29, -384
    400 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm30, -320
    401 ; CHECK64-SKX-NEXT:    .cfi_offset %xmm31, -224
    402 ; CHECK64-SKX-NEXT:    .cfi_offset %k0, -144
    403 ; CHECK64-SKX-NEXT:    .cfi_offset %k1, -136
    404 ; CHECK64-SKX-NEXT:    .cfi_offset %k2, -128
    405 ; CHECK64-SKX-NEXT:    .cfi_offset %k3, -120
    406 ; CHECK64-SKX-NEXT:    .cfi_offset %k4, -112
    407 ; CHECK64-SKX-NEXT:    .cfi_offset %k5, -104
    408 ; CHECK64-SKX-NEXT:    .cfi_offset %k6, -96
    409 ; CHECK64-SKX-NEXT:    .cfi_offset %k7, -88
    410 ; CHECK64-SKX-NEXT:    cld ## encoding: [0xfc]
    411 ; CHECK64-SKX-NEXT:    vzeroupper ## encoding: [0xc5,0xf8,0x77]
    412 ; CHECK64-SKX-NEXT:    callq _bar ## encoding: [0xe8,A,A,A,A]
    413 ; CHECK64-SKX-NEXT:    ## fixup A - offset: 1, value: _bar-4, kind: reloc_branch_4byte_pcrel
    414 ; CHECK64-SKX-NEXT:    vmovups (%rsp), %zmm0 ## 64-byte Reload
    415 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x04,0x24]
    416 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm1 ## 64-byte Reload
    417 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x4c,0x24,0x01]
    418 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm2 ## 64-byte Reload
    419 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x54,0x24,0x02]
    420 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm3 ## 64-byte Reload
    421 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x5c,0x24,0x03]
    422 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm4 ## 64-byte Reload
    423 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x64,0x24,0x04]
    424 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm5 ## 64-byte Reload
    425 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x6c,0x24,0x05]
    426 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm6 ## 64-byte Reload
    427 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x74,0x24,0x06]
    428 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm7 ## 64-byte Reload
    429 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x7c,0x24,0x07]
    430 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm8 ## 64-byte Reload
    431 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x10,0x44,0x24,0x08]
    432 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm9 ## 64-byte Reload
    433 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x10,0x4c,0x24,0x09]
    434 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm10 ## 64-byte Reload
    435 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x10,0x54,0x24,0x0a]
    436 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm11 ## 64-byte Reload
    437 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x10,0x5c,0x24,0x0b]
    438 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm12 ## 64-byte Reload
    439 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x10,0x64,0x24,0x0c]
    440 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm13 ## 64-byte Reload
    441 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x10,0x6c,0x24,0x0d]
    442 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm14 ## 64-byte Reload
    443 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x10,0x74,0x24,0x0e]
    444 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm15 ## 64-byte Reload
    445 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x71,0x7c,0x48,0x10,0x7c,0x24,0x0f]
    446 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm16 ## 64-byte Reload
    447 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x10,0x44,0x24,0x10]
    448 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm17 ## 64-byte Reload
    449 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x10,0x4c,0x24,0x11]
    450 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm18 ## 64-byte Reload
    451 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x10,0x54,0x24,0x12]
    452 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm19 ## 64-byte Reload
    453 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x10,0x5c,0x24,0x13]
    454 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm20 ## 64-byte Reload
    455 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x10,0x64,0x24,0x14]
    456 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm21 ## 64-byte Reload
    457 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x10,0x6c,0x24,0x15]
    458 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm22 ## 64-byte Reload
    459 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x10,0x74,0x24,0x16]
    460 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm23 ## 64-byte Reload
    461 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0xe1,0x7c,0x48,0x10,0x7c,0x24,0x17]
    462 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm24 ## 64-byte Reload
    463 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x10,0x44,0x24,0x18]
    464 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm25 ## 64-byte Reload
    465 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x10,0x4c,0x24,0x19]
    466 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm26 ## 64-byte Reload
    467 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x10,0x54,0x24,0x1a]
    468 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm27 ## 64-byte Reload
    469 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x10,0x5c,0x24,0x1b]
    470 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm28 ## 64-byte Reload
    471 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x10,0x64,0x24,0x1c]
    472 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm29 ## 64-byte Reload
    473 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x10,0x6c,0x24,0x1d]
    474 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm30 ## 64-byte Reload
    475 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x10,0x74,0x24,0x1e]
    476 ; CHECK64-SKX-NEXT:    vmovups {{[0-9]+}}(%rsp), %zmm31 ## 64-byte Reload
    477 ; CHECK64-SKX-NEXT:    ## encoding: [0x62,0x61,0x7c,0x48,0x10,0xbc,0x24,0xe0,0x07,0x00,0x00]
    478 ; CHECK64-SKX-NEXT:    kmovq {{[0-9]+}}(%rsp), %k0 ## 8-byte Reload
    479 ; CHECK64-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x90,0x84,0x24,0x30,0x08,0x00,0x00]
    480 ; CHECK64-SKX-NEXT:    kmovq {{[0-9]+}}(%rsp), %k1 ## 8-byte Reload
    481 ; CHECK64-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x90,0x8c,0x24,0x38,0x08,0x00,0x00]
    482 ; CHECK64-SKX-NEXT:    kmovq {{[0-9]+}}(%rsp), %k2 ## 8-byte Reload
    483 ; CHECK64-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x90,0x94,0x24,0x40,0x08,0x00,0x00]
    484 ; CHECK64-SKX-NEXT:    kmovq {{[0-9]+}}(%rsp), %k3 ## 8-byte Reload
    485 ; CHECK64-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x90,0x9c,0x24,0x48,0x08,0x00,0x00]
    486 ; CHECK64-SKX-NEXT:    kmovq {{[0-9]+}}(%rsp), %k4 ## 8-byte Reload
    487 ; CHECK64-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x90,0xa4,0x24,0x50,0x08,0x00,0x00]
    488 ; CHECK64-SKX-NEXT:    kmovq {{[0-9]+}}(%rsp), %k5 ## 8-byte Reload
    489 ; CHECK64-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x90,0xac,0x24,0x58,0x08,0x00,0x00]
    490 ; CHECK64-SKX-NEXT:    kmovq {{[0-9]+}}(%rsp), %k6 ## 8-byte Reload
    491 ; CHECK64-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x90,0xb4,0x24,0x60,0x08,0x00,0x00]
    492 ; CHECK64-SKX-NEXT:    kmovq {{[0-9]+}}(%rsp), %k7 ## 8-byte Reload
    493 ; CHECK64-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x90,0xbc,0x24,0x68,0x08,0x00,0x00]
    494 ; CHECK64-SKX-NEXT:    addq $2160, %rsp ## encoding: [0x48,0x81,0xc4,0x70,0x08,0x00,0x00]
    495 ; CHECK64-SKX-NEXT:    ## imm = 0x870
    496 ; CHECK64-SKX-NEXT:    popq %rcx ## encoding: [0x59]
    497 ; CHECK64-SKX-NEXT:    popq %rdx ## encoding: [0x5a]
    498 ; CHECK64-SKX-NEXT:    popq %rsi ## encoding: [0x5e]
    499 ; CHECK64-SKX-NEXT:    popq %rdi ## encoding: [0x5f]
    500 ; CHECK64-SKX-NEXT:    popq %r8 ## encoding: [0x41,0x58]
    501 ; CHECK64-SKX-NEXT:    popq %r9 ## encoding: [0x41,0x59]
    502 ; CHECK64-SKX-NEXT:    popq %r10 ## encoding: [0x41,0x5a]
    503 ; CHECK64-SKX-NEXT:    popq %r11 ## encoding: [0x41,0x5b]
    504 ; CHECK64-SKX-NEXT:    popq %rax ## encoding: [0x58]
    505 ; CHECK64-SKX-NEXT:    iretq ## encoding: [0x48,0xcf]
    506 ;
    507 ; CHECK32-KNL-LABEL: foo:
    508 ; CHECK32-KNL:       ## %bb.0:
    509 ; CHECK32-KNL-NEXT:    pushl %edx ## encoding: [0x52]
    510 ; CHECK32-KNL-NEXT:    .cfi_def_cfa_offset 8
    511 ; CHECK32-KNL-NEXT:    pushl %ecx ## encoding: [0x51]
    512 ; CHECK32-KNL-NEXT:    .cfi_def_cfa_offset 12
    513 ; CHECK32-KNL-NEXT:    pushl %eax ## encoding: [0x50]
    514 ; CHECK32-KNL-NEXT:    .cfi_def_cfa_offset 16
    515 ; CHECK32-KNL-NEXT:    subl $560, %esp ## encoding: [0x81,0xec,0x30,0x02,0x00,0x00]
    516 ; CHECK32-KNL-NEXT:    ## imm = 0x230
    517 ; CHECK32-KNL-NEXT:    kmovw %k7, {{[0-9]+}}(%esp) ## 2-byte Spill
    518 ; CHECK32-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x91,0xbc,0x24,0x2e,0x02,0x00,0x00]
    519 ; CHECK32-KNL-NEXT:    kmovw %k6, {{[0-9]+}}(%esp) ## 2-byte Spill
    520 ; CHECK32-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x91,0xb4,0x24,0x2c,0x02,0x00,0x00]
    521 ; CHECK32-KNL-NEXT:    kmovw %k5, {{[0-9]+}}(%esp) ## 2-byte Spill
    522 ; CHECK32-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x91,0xac,0x24,0x2a,0x02,0x00,0x00]
    523 ; CHECK32-KNL-NEXT:    kmovw %k4, {{[0-9]+}}(%esp) ## 2-byte Spill
    524 ; CHECK32-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x91,0xa4,0x24,0x28,0x02,0x00,0x00]
    525 ; CHECK32-KNL-NEXT:    kmovw %k3, {{[0-9]+}}(%esp) ## 2-byte Spill
    526 ; CHECK32-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x91,0x9c,0x24,0x26,0x02,0x00,0x00]
    527 ; CHECK32-KNL-NEXT:    kmovw %k2, {{[0-9]+}}(%esp) ## 2-byte Spill
    528 ; CHECK32-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x91,0x94,0x24,0x24,0x02,0x00,0x00]
    529 ; CHECK32-KNL-NEXT:    kmovw %k1, {{[0-9]+}}(%esp) ## 2-byte Spill
    530 ; CHECK32-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x91,0x8c,0x24,0x22,0x02,0x00,0x00]
    531 ; CHECK32-KNL-NEXT:    kmovw %k0, {{[0-9]+}}(%esp) ## 2-byte Spill
    532 ; CHECK32-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x91,0x84,0x24,0x20,0x02,0x00,0x00]
    533 ; CHECK32-KNL-NEXT:    vmovups %zmm7, {{[0-9]+}}(%esp) ## 64-byte Spill
    534 ; CHECK32-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x7c,0x24,0x07]
    535 ; CHECK32-KNL-NEXT:    vmovups %zmm6, {{[0-9]+}}(%esp) ## 64-byte Spill
    536 ; CHECK32-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x74,0x24,0x06]
    537 ; CHECK32-KNL-NEXT:    vmovups %zmm5, {{[0-9]+}}(%esp) ## 64-byte Spill
    538 ; CHECK32-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x6c,0x24,0x05]
    539 ; CHECK32-KNL-NEXT:    vmovups %zmm4, {{[0-9]+}}(%esp) ## 64-byte Spill
    540 ; CHECK32-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x64,0x24,0x04]
    541 ; CHECK32-KNL-NEXT:    vmovups %zmm3, {{[0-9]+}}(%esp) ## 64-byte Spill
    542 ; CHECK32-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x5c,0x24,0x03]
    543 ; CHECK32-KNL-NEXT:    vmovups %zmm2, {{[0-9]+}}(%esp) ## 64-byte Spill
    544 ; CHECK32-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x54,0x24,0x02]
    545 ; CHECK32-KNL-NEXT:    vmovups %zmm1, {{[0-9]+}}(%esp) ## 64-byte Spill
    546 ; CHECK32-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x4c,0x24,0x01]
    547 ; CHECK32-KNL-NEXT:    vmovups %zmm0, (%esp) ## 64-byte Spill
    548 ; CHECK32-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x04,0x24]
    549 ; CHECK32-KNL-NEXT:    .cfi_def_cfa_offset 576
    550 ; CHECK32-KNL-NEXT:    .cfi_offset %eax, -16
    551 ; CHECK32-KNL-NEXT:    .cfi_offset %ecx, -12
    552 ; CHECK32-KNL-NEXT:    .cfi_offset %edx, -8
    553 ; CHECK32-KNL-NEXT:    .cfi_offset %xmm0, -576
    554 ; CHECK32-KNL-NEXT:    .cfi_offset %xmm1, -512
    555 ; CHECK32-KNL-NEXT:    .cfi_offset %xmm2, -448
    556 ; CHECK32-KNL-NEXT:    .cfi_offset %xmm3, -384
    557 ; CHECK32-KNL-NEXT:    .cfi_offset %xmm4, -320
    558 ; CHECK32-KNL-NEXT:    .cfi_offset %xmm5, -256
    559 ; CHECK32-KNL-NEXT:    .cfi_offset %xmm6, -192
    560 ; CHECK32-KNL-NEXT:    .cfi_offset %xmm7, -128
    561 ; CHECK32-KNL-NEXT:    .cfi_offset %k0, -32
    562 ; CHECK32-KNL-NEXT:    .cfi_offset %k1, -30
    563 ; CHECK32-KNL-NEXT:    .cfi_offset %k2, -28
    564 ; CHECK32-KNL-NEXT:    .cfi_offset %k3, -26
    565 ; CHECK32-KNL-NEXT:    .cfi_offset %k4, -24
    566 ; CHECK32-KNL-NEXT:    .cfi_offset %k5, -22
    567 ; CHECK32-KNL-NEXT:    .cfi_offset %k6, -20
    568 ; CHECK32-KNL-NEXT:    .cfi_offset %k7, -18
    569 ; CHECK32-KNL-NEXT:    cld ## encoding: [0xfc]
    570 ; CHECK32-KNL-NEXT:    calll _bar ## encoding: [0xe8,A,A,A,A]
    571 ; CHECK32-KNL-NEXT:    ## fixup A - offset: 1, value: _bar-4, kind: FK_PCRel_4
    572 ; CHECK32-KNL-NEXT:    vmovups (%esp), %zmm0 ## 64-byte Reload
    573 ; CHECK32-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x04,0x24]
    574 ; CHECK32-KNL-NEXT:    vmovups {{[0-9]+}}(%esp), %zmm1 ## 64-byte Reload
    575 ; CHECK32-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x4c,0x24,0x01]
    576 ; CHECK32-KNL-NEXT:    vmovups {{[0-9]+}}(%esp), %zmm2 ## 64-byte Reload
    577 ; CHECK32-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x54,0x24,0x02]
    578 ; CHECK32-KNL-NEXT:    vmovups {{[0-9]+}}(%esp), %zmm3 ## 64-byte Reload
    579 ; CHECK32-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x5c,0x24,0x03]
    580 ; CHECK32-KNL-NEXT:    vmovups {{[0-9]+}}(%esp), %zmm4 ## 64-byte Reload
    581 ; CHECK32-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x64,0x24,0x04]
    582 ; CHECK32-KNL-NEXT:    vmovups {{[0-9]+}}(%esp), %zmm5 ## 64-byte Reload
    583 ; CHECK32-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x6c,0x24,0x05]
    584 ; CHECK32-KNL-NEXT:    vmovups {{[0-9]+}}(%esp), %zmm6 ## 64-byte Reload
    585 ; CHECK32-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x74,0x24,0x06]
    586 ; CHECK32-KNL-NEXT:    vmovups {{[0-9]+}}(%esp), %zmm7 ## 64-byte Reload
    587 ; CHECK32-KNL-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x7c,0x24,0x07]
    588 ; CHECK32-KNL-NEXT:    kmovw {{[0-9]+}}(%esp), %k0 ## 2-byte Reload
    589 ; CHECK32-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x90,0x84,0x24,0x20,0x02,0x00,0x00]
    590 ; CHECK32-KNL-NEXT:    kmovw {{[0-9]+}}(%esp), %k1 ## 2-byte Reload
    591 ; CHECK32-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x90,0x8c,0x24,0x22,0x02,0x00,0x00]
    592 ; CHECK32-KNL-NEXT:    kmovw {{[0-9]+}}(%esp), %k2 ## 2-byte Reload
    593 ; CHECK32-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x90,0x94,0x24,0x24,0x02,0x00,0x00]
    594 ; CHECK32-KNL-NEXT:    kmovw {{[0-9]+}}(%esp), %k3 ## 2-byte Reload
    595 ; CHECK32-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x90,0x9c,0x24,0x26,0x02,0x00,0x00]
    596 ; CHECK32-KNL-NEXT:    kmovw {{[0-9]+}}(%esp), %k4 ## 2-byte Reload
    597 ; CHECK32-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x90,0xa4,0x24,0x28,0x02,0x00,0x00]
    598 ; CHECK32-KNL-NEXT:    kmovw {{[0-9]+}}(%esp), %k5 ## 2-byte Reload
    599 ; CHECK32-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x90,0xac,0x24,0x2a,0x02,0x00,0x00]
    600 ; CHECK32-KNL-NEXT:    kmovw {{[0-9]+}}(%esp), %k6 ## 2-byte Reload
    601 ; CHECK32-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x90,0xb4,0x24,0x2c,0x02,0x00,0x00]
    602 ; CHECK32-KNL-NEXT:    kmovw {{[0-9]+}}(%esp), %k7 ## 2-byte Reload
    603 ; CHECK32-KNL-NEXT:    ## encoding: [0xc5,0xf8,0x90,0xbc,0x24,0x2e,0x02,0x00,0x00]
    604 ; CHECK32-KNL-NEXT:    addl $560, %esp ## encoding: [0x81,0xc4,0x30,0x02,0x00,0x00]
    605 ; CHECK32-KNL-NEXT:    ## imm = 0x230
    606 ; CHECK32-KNL-NEXT:    popl %eax ## encoding: [0x58]
    607 ; CHECK32-KNL-NEXT:    popl %ecx ## encoding: [0x59]
    608 ; CHECK32-KNL-NEXT:    popl %edx ## encoding: [0x5a]
    609 ; CHECK32-KNL-NEXT:    iretl ## encoding: [0xcf]
    610 ;
    611 ; CHECK32-SKX-LABEL: foo:
    612 ; CHECK32-SKX:       ## %bb.0:
    613 ; CHECK32-SKX-NEXT:    pushl %edx ## encoding: [0x52]
    614 ; CHECK32-SKX-NEXT:    .cfi_def_cfa_offset 8
    615 ; CHECK32-SKX-NEXT:    pushl %ecx ## encoding: [0x51]
    616 ; CHECK32-SKX-NEXT:    .cfi_def_cfa_offset 12
    617 ; CHECK32-SKX-NEXT:    pushl %eax ## encoding: [0x50]
    618 ; CHECK32-SKX-NEXT:    .cfi_def_cfa_offset 16
    619 ; CHECK32-SKX-NEXT:    subl $624, %esp ## encoding: [0x81,0xec,0x70,0x02,0x00,0x00]
    620 ; CHECK32-SKX-NEXT:    ## imm = 0x270
    621 ; CHECK32-SKX-NEXT:    kmovq %k7, {{[0-9]+}}(%esp) ## 8-byte Spill
    622 ; CHECK32-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x91,0xbc,0x24,0x68,0x02,0x00,0x00]
    623 ; CHECK32-SKX-NEXT:    kmovq %k6, {{[0-9]+}}(%esp) ## 8-byte Spill
    624 ; CHECK32-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x91,0xb4,0x24,0x60,0x02,0x00,0x00]
    625 ; CHECK32-SKX-NEXT:    kmovq %k5, {{[0-9]+}}(%esp) ## 8-byte Spill
    626 ; CHECK32-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x91,0xac,0x24,0x58,0x02,0x00,0x00]
    627 ; CHECK32-SKX-NEXT:    kmovq %k4, {{[0-9]+}}(%esp) ## 8-byte Spill
    628 ; CHECK32-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x91,0xa4,0x24,0x50,0x02,0x00,0x00]
    629 ; CHECK32-SKX-NEXT:    kmovq %k3, {{[0-9]+}}(%esp) ## 8-byte Spill
    630 ; CHECK32-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x91,0x9c,0x24,0x48,0x02,0x00,0x00]
    631 ; CHECK32-SKX-NEXT:    kmovq %k2, {{[0-9]+}}(%esp) ## 8-byte Spill
    632 ; CHECK32-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x91,0x94,0x24,0x40,0x02,0x00,0x00]
    633 ; CHECK32-SKX-NEXT:    kmovq %k1, {{[0-9]+}}(%esp) ## 8-byte Spill
    634 ; CHECK32-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x91,0x8c,0x24,0x38,0x02,0x00,0x00]
    635 ; CHECK32-SKX-NEXT:    kmovq %k0, {{[0-9]+}}(%esp) ## 8-byte Spill
    636 ; CHECK32-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x91,0x84,0x24,0x30,0x02,0x00,0x00]
    637 ; CHECK32-SKX-NEXT:    vmovups %zmm7, {{[0-9]+}}(%esp) ## 64-byte Spill
    638 ; CHECK32-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0xbc,0x24,0xe0,0x01,0x00,0x00]
    639 ; CHECK32-SKX-NEXT:    vmovups %zmm6, {{[0-9]+}}(%esp) ## 64-byte Spill
    640 ; CHECK32-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x74,0x24,0x06]
    641 ; CHECK32-SKX-NEXT:    vmovups %zmm5, {{[0-9]+}}(%esp) ## 64-byte Spill
    642 ; CHECK32-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x6c,0x24,0x05]
    643 ; CHECK32-SKX-NEXT:    vmovups %zmm4, {{[0-9]+}}(%esp) ## 64-byte Spill
    644 ; CHECK32-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x64,0x24,0x04]
    645 ; CHECK32-SKX-NEXT:    vmovups %zmm3, {{[0-9]+}}(%esp) ## 64-byte Spill
    646 ; CHECK32-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x5c,0x24,0x03]
    647 ; CHECK32-SKX-NEXT:    vmovups %zmm2, {{[0-9]+}}(%esp) ## 64-byte Spill
    648 ; CHECK32-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x54,0x24,0x02]
    649 ; CHECK32-SKX-NEXT:    vmovups %zmm1, {{[0-9]+}}(%esp) ## 64-byte Spill
    650 ; CHECK32-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x4c,0x24,0x01]
    651 ; CHECK32-SKX-NEXT:    vmovups %zmm0, (%esp) ## 64-byte Spill
    652 ; CHECK32-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x11,0x04,0x24]
    653 ; CHECK32-SKX-NEXT:    .cfi_def_cfa_offset 640
    654 ; CHECK32-SKX-NEXT:    .cfi_offset %eax, -16
    655 ; CHECK32-SKX-NEXT:    .cfi_offset %ecx, -12
    656 ; CHECK32-SKX-NEXT:    .cfi_offset %edx, -8
    657 ; CHECK32-SKX-NEXT:    .cfi_offset %xmm0, -640
    658 ; CHECK32-SKX-NEXT:    .cfi_offset %xmm1, -576
    659 ; CHECK32-SKX-NEXT:    .cfi_offset %xmm2, -512
    660 ; CHECK32-SKX-NEXT:    .cfi_offset %xmm3, -448
    661 ; CHECK32-SKX-NEXT:    .cfi_offset %xmm4, -384
    662 ; CHECK32-SKX-NEXT:    .cfi_offset %xmm5, -320
    663 ; CHECK32-SKX-NEXT:    .cfi_offset %xmm6, -256
    664 ; CHECK32-SKX-NEXT:    .cfi_offset %xmm7, -160
    665 ; CHECK32-SKX-NEXT:    .cfi_offset %k0, -80
    666 ; CHECK32-SKX-NEXT:    .cfi_offset %k1, -72
    667 ; CHECK32-SKX-NEXT:    .cfi_offset %k2, -64
    668 ; CHECK32-SKX-NEXT:    .cfi_offset %k3, -56
    669 ; CHECK32-SKX-NEXT:    .cfi_offset %k4, -48
    670 ; CHECK32-SKX-NEXT:    .cfi_offset %k5, -40
    671 ; CHECK32-SKX-NEXT:    .cfi_offset %k6, -32
    672 ; CHECK32-SKX-NEXT:    .cfi_offset %k7, -24
    673 ; CHECK32-SKX-NEXT:    cld ## encoding: [0xfc]
    674 ; CHECK32-SKX-NEXT:    vzeroupper ## encoding: [0xc5,0xf8,0x77]
    675 ; CHECK32-SKX-NEXT:    calll _bar ## encoding: [0xe8,A,A,A,A]
    676 ; CHECK32-SKX-NEXT:    ## fixup A - offset: 1, value: _bar-4, kind: FK_PCRel_4
    677 ; CHECK32-SKX-NEXT:    vmovups (%esp), %zmm0 ## 64-byte Reload
    678 ; CHECK32-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x04,0x24]
    679 ; CHECK32-SKX-NEXT:    vmovups {{[0-9]+}}(%esp), %zmm1 ## 64-byte Reload
    680 ; CHECK32-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x4c,0x24,0x01]
    681 ; CHECK32-SKX-NEXT:    vmovups {{[0-9]+}}(%esp), %zmm2 ## 64-byte Reload
    682 ; CHECK32-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x54,0x24,0x02]
    683 ; CHECK32-SKX-NEXT:    vmovups {{[0-9]+}}(%esp), %zmm3 ## 64-byte Reload
    684 ; CHECK32-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x5c,0x24,0x03]
    685 ; CHECK32-SKX-NEXT:    vmovups {{[0-9]+}}(%esp), %zmm4 ## 64-byte Reload
    686 ; CHECK32-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x64,0x24,0x04]
    687 ; CHECK32-SKX-NEXT:    vmovups {{[0-9]+}}(%esp), %zmm5 ## 64-byte Reload
    688 ; CHECK32-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x6c,0x24,0x05]
    689 ; CHECK32-SKX-NEXT:    vmovups {{[0-9]+}}(%esp), %zmm6 ## 64-byte Reload
    690 ; CHECK32-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0x74,0x24,0x06]
    691 ; CHECK32-SKX-NEXT:    vmovups {{[0-9]+}}(%esp), %zmm7 ## 64-byte Reload
    692 ; CHECK32-SKX-NEXT:    ## encoding: [0x62,0xf1,0x7c,0x48,0x10,0xbc,0x24,0xe0,0x01,0x00,0x00]
    693 ; CHECK32-SKX-NEXT:    kmovq {{[0-9]+}}(%esp), %k0 ## 8-byte Reload
    694 ; CHECK32-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x90,0x84,0x24,0x30,0x02,0x00,0x00]
    695 ; CHECK32-SKX-NEXT:    kmovq {{[0-9]+}}(%esp), %k1 ## 8-byte Reload
    696 ; CHECK32-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x90,0x8c,0x24,0x38,0x02,0x00,0x00]
    697 ; CHECK32-SKX-NEXT:    kmovq {{[0-9]+}}(%esp), %k2 ## 8-byte Reload
    698 ; CHECK32-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x90,0x94,0x24,0x40,0x02,0x00,0x00]
    699 ; CHECK32-SKX-NEXT:    kmovq {{[0-9]+}}(%esp), %k3 ## 8-byte Reload
    700 ; CHECK32-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x90,0x9c,0x24,0x48,0x02,0x00,0x00]
    701 ; CHECK32-SKX-NEXT:    kmovq {{[0-9]+}}(%esp), %k4 ## 8-byte Reload
    702 ; CHECK32-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x90,0xa4,0x24,0x50,0x02,0x00,0x00]
    703 ; CHECK32-SKX-NEXT:    kmovq {{[0-9]+}}(%esp), %k5 ## 8-byte Reload
    704 ; CHECK32-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x90,0xac,0x24,0x58,0x02,0x00,0x00]
    705 ; CHECK32-SKX-NEXT:    kmovq {{[0-9]+}}(%esp), %k6 ## 8-byte Reload
    706 ; CHECK32-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x90,0xb4,0x24,0x60,0x02,0x00,0x00]
    707 ; CHECK32-SKX-NEXT:    kmovq {{[0-9]+}}(%esp), %k7 ## 8-byte Reload
    708 ; CHECK32-SKX-NEXT:    ## encoding: [0xc4,0xe1,0xf8,0x90,0xbc,0x24,0x68,0x02,0x00,0x00]
    709 ; CHECK32-SKX-NEXT:    addl $624, %esp ## encoding: [0x81,0xc4,0x70,0x02,0x00,0x00]
    710 ; CHECK32-SKX-NEXT:    ## imm = 0x270
    711 ; CHECK32-SKX-NEXT:    popl %eax ## encoding: [0x58]
    712 ; CHECK32-SKX-NEXT:    popl %ecx ## encoding: [0x59]
    713 ; CHECK32-SKX-NEXT:    popl %edx ## encoding: [0x5a]
    714 ; CHECK32-SKX-NEXT:    iretl ## encoding: [0xcf]
    715   call void @bar()
    716   ret void
    717 }
    718 
    719 declare void @bar()
    720 
    721