1 ; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py 2 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=x86-64 -mattr=+xop | FileCheck %s --check-prefix=GENERIC 3 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=bdver1 | FileCheck %s --check-prefix=BDVER --check-prefix=BDVER1 4 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=bdver2 | FileCheck %s --check-prefix=BDVER --check-prefix=BDVER2 5 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=bdver3 | FileCheck %s --check-prefix=BDVER --check-prefix=BDVER3 6 ; RUN: llc < %s -mtriple=x86_64-unknown-unknown -print-schedule -mcpu=bdver4 | FileCheck %s --check-prefix=BDVER --check-prefix=BDVER4 7 8 define void @test_vfrczpd(<2 x double> %a0, <4 x double> %a1, <2 x double> *%a2, <4 x double> *%a3) { 9 ; GENERIC-LABEL: test_vfrczpd: 10 ; GENERIC: # %bb.0: 11 ; GENERIC-NEXT: #APP 12 ; GENERIC-NEXT: vfrczpd %xmm0, %xmm0 # sched: [3:1.00] 13 ; GENERIC-NEXT: vfrczpd %ymm1, %ymm1 # sched: [3:1.00] 14 ; GENERIC-NEXT: vfrczpd (%rdi), %xmm0 # sched: [9:1.00] 15 ; GENERIC-NEXT: vfrczpd (%rsi), %ymm1 # sched: [10:1.00] 16 ; GENERIC-NEXT: #NO_APP 17 ; GENERIC-NEXT: vzeroupper # sched: [100:0.33] 18 ; GENERIC-NEXT: retq # sched: [1:1.00] 19 ; 20 ; BDVER-LABEL: test_vfrczpd: 21 ; BDVER: # %bb.0: 22 ; BDVER-NEXT: #APP 23 ; BDVER-NEXT: vfrczpd %xmm0, %xmm0 24 ; BDVER-NEXT: vfrczpd %ymm1, %ymm1 25 ; BDVER-NEXT: vfrczpd (%rdi), %xmm0 26 ; BDVER-NEXT: vfrczpd (%rsi), %ymm1 27 ; BDVER-NEXT: #NO_APP 28 ; BDVER-NEXT: vzeroupper 29 ; BDVER-NEXT: retq 30 call void asm sideeffect "vfrczpd $0, $0 \0a\09 vfrczpd $1, $1 \0a\09 vfrczpd $2, $0 \0a\09 vfrczpd $3, $1", "x,x,*m,*m"(<2 x double> %a0, <4 x double> %a1, <2 x double> *%a2, <4 x double> *%a3) 31 ret void 32 } 33 34 define void @test_vfrczps(<4 x float> %a0, <4 x double> %a1, <4 x float> *%a2, <4 x double> *%a3) { 35 ; GENERIC-LABEL: test_vfrczps: 36 ; GENERIC: # %bb.0: 37 ; GENERIC-NEXT: #APP 38 ; GENERIC-NEXT: vfrczps %xmm0, %xmm0 # sched: [3:1.00] 39 ; GENERIC-NEXT: vfrczps %ymm1, %ymm1 # sched: [3:1.00] 40 ; GENERIC-NEXT: vfrczps (%rdi), %xmm0 # sched: [9:1.00] 41 ; GENERIC-NEXT: vfrczps (%rsi), %ymm1 # sched: [10:1.00] 42 ; GENERIC-NEXT: #NO_APP 43 ; GENERIC-NEXT: vzeroupper # sched: [100:0.33] 44 ; GENERIC-NEXT: retq # sched: [1:1.00] 45 ; 46 ; BDVER-LABEL: test_vfrczps: 47 ; BDVER: # %bb.0: 48 ; BDVER-NEXT: #APP 49 ; BDVER-NEXT: vfrczps %xmm0, %xmm0 50 ; BDVER-NEXT: vfrczps %ymm1, %ymm1 51 ; BDVER-NEXT: vfrczps (%rdi), %xmm0 52 ; BDVER-NEXT: vfrczps (%rsi), %ymm1 53 ; BDVER-NEXT: #NO_APP 54 ; BDVER-NEXT: vzeroupper 55 ; BDVER-NEXT: retq 56 call void asm sideeffect "vfrczps $0, $0 \0a\09 vfrczps $1, $1 \0a\09 vfrczps $2, $0 \0a\09 vfrczps $3, $1", "x,x,*m,*m"(<4 x float> %a0, <4 x double> %a1, <4 x float> *%a2, <4 x double> *%a3) 57 ret void 58 } 59 60 define void @test_vfrczsd(<2 x double> %a0, <2 x double> *%a1) { 61 ; GENERIC-LABEL: test_vfrczsd: 62 ; GENERIC: # %bb.0: 63 ; GENERIC-NEXT: #APP 64 ; GENERIC-NEXT: vfrczsd %xmm0, %xmm0 # sched: [3:1.00] 65 ; GENERIC-NEXT: vfrczsd (%rdi), %xmm0 # sched: [9:1.00] 66 ; GENERIC-NEXT: #NO_APP 67 ; GENERIC-NEXT: retq # sched: [1:1.00] 68 ; 69 ; BDVER-LABEL: test_vfrczsd: 70 ; BDVER: # %bb.0: 71 ; BDVER-NEXT: #APP 72 ; BDVER-NEXT: vfrczsd %xmm0, %xmm0 73 ; BDVER-NEXT: vfrczsd (%rdi), %xmm0 74 ; BDVER-NEXT: #NO_APP 75 ; BDVER-NEXT: retq 76 call void asm sideeffect "vfrczsd $0, $0 \0a\09 vfrczsd $1, $0", "x,*m"(<2 x double> %a0, <2 x double> *%a1) 77 ret void 78 } 79 80 define void @test_vfrczss(<4 x float> %a0, <4 x double> *%a1) { 81 ; GENERIC-LABEL: test_vfrczss: 82 ; GENERIC: # %bb.0: 83 ; GENERIC-NEXT: #APP 84 ; GENERIC-NEXT: vfrczss %xmm0, %xmm0 # sched: [3:1.00] 85 ; GENERIC-NEXT: vfrczss (%rdi), %xmm0 # sched: [9:1.00] 86 ; GENERIC-NEXT: #NO_APP 87 ; GENERIC-NEXT: retq # sched: [1:1.00] 88 ; 89 ; BDVER-LABEL: test_vfrczss: 90 ; BDVER: # %bb.0: 91 ; BDVER-NEXT: #APP 92 ; BDVER-NEXT: vfrczss %xmm0, %xmm0 93 ; BDVER-NEXT: vfrczss (%rdi), %xmm0 94 ; BDVER-NEXT: #NO_APP 95 ; BDVER-NEXT: retq 96 call void asm sideeffect "vfrczss $0, $0 \0a\09 vfrczss $1, $0", "x,*m"(<4 x float> %a0, <4 x double> *%a1) 97 ret void 98 } 99 100 define void @test_vpcmov_128(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) { 101 ; GENERIC-LABEL: test_vpcmov_128: 102 ; GENERIC: # %bb.0: 103 ; GENERIC-NEXT: #APP 104 ; GENERIC-NEXT: vpcmov %xmm2, %xmm1, %xmm0, %xmm0 # sched: [1:0.50] 105 ; GENERIC-NEXT: vpcmov (%rdi), %xmm1, %xmm0, %xmm0 # sched: [7:0.50] 106 ; GENERIC-NEXT: vpcmov %xmm2, (%rdi), %xmm0, %xmm0 # sched: [7:0.50] 107 ; GENERIC-NEXT: #NO_APP 108 ; GENERIC-NEXT: retq # sched: [1:1.00] 109 ; 110 ; BDVER-LABEL: test_vpcmov_128: 111 ; BDVER: # %bb.0: 112 ; BDVER-NEXT: #APP 113 ; BDVER-NEXT: vpcmov %xmm2, %xmm1, %xmm0, %xmm0 114 ; BDVER-NEXT: vpcmov (%rdi), %xmm1, %xmm0, %xmm0 115 ; BDVER-NEXT: vpcmov %xmm2, (%rdi), %xmm0, %xmm0 116 ; BDVER-NEXT: #NO_APP 117 ; BDVER-NEXT: retq 118 call void asm sideeffect "vpcmov $2, $1, $0, $0 \0a\09 vpcmov $3, $1, $0, $0 \0a\09 vpcmov $2, $3, $0, $0", "x,x,x,*m"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) 119 ret void 120 } 121 122 define void @test_vpcmov_256(<4 x i64> %a0, <4 x i64> %a1, <4 x i64> %a2, <4 x i64> *%a3) { 123 ; GENERIC-LABEL: test_vpcmov_256: 124 ; GENERIC: # %bb.0: 125 ; GENERIC-NEXT: #APP 126 ; GENERIC-NEXT: vpcmov %ymm2, %ymm1, %ymm0, %ymm0 # sched: [1:1.00] 127 ; GENERIC-NEXT: vpcmov (%rdi), %ymm1, %ymm0, %ymm0 # sched: [8:1.00] 128 ; GENERIC-NEXT: vpcmov %ymm2, (%rdi), %ymm0, %ymm0 # sched: [8:1.00] 129 ; GENERIC-NEXT: #NO_APP 130 ; GENERIC-NEXT: vzeroupper # sched: [100:0.33] 131 ; GENERIC-NEXT: retq # sched: [1:1.00] 132 ; 133 ; BDVER-LABEL: test_vpcmov_256: 134 ; BDVER: # %bb.0: 135 ; BDVER-NEXT: #APP 136 ; BDVER-NEXT: vpcmov %ymm2, %ymm1, %ymm0, %ymm0 137 ; BDVER-NEXT: vpcmov (%rdi), %ymm1, %ymm0, %ymm0 138 ; BDVER-NEXT: vpcmov %ymm2, (%rdi), %ymm0, %ymm0 139 ; BDVER-NEXT: #NO_APP 140 ; BDVER-NEXT: vzeroupper 141 ; BDVER-NEXT: retq 142 call void asm sideeffect "vpcmov $2, $1, $0, $0 \0a\09 vpcmov $3, $1, $0, $0 \0a\09 vpcmov $2, $3, $0, $0", "x,x,x,*m"(<4 x i64> %a0, <4 x i64> %a1, <4 x i64> %a2, <4 x i64> *%a3) 143 ret void 144 } 145 146 define void @test_vpcom(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> *%a2) { 147 ; GENERIC-LABEL: test_vpcom: 148 ; GENERIC: # %bb.0: 149 ; GENERIC-NEXT: #APP 150 ; GENERIC-NEXT: vpcomb $3, %xmm1, %xmm0, %xmm0 # sched: [1:0.50] 151 ; GENERIC-NEXT: vpcomd $3, %xmm1, %xmm0, %xmm0 # sched: [1:0.50] 152 ; GENERIC-NEXT: vpcomq $3, %xmm1, %xmm0, %xmm0 # sched: [1:0.50] 153 ; GENERIC-NEXT: vpcomw $3, %xmm1, %xmm0, %xmm0 # sched: [1:0.50] 154 ; GENERIC-NEXT: vpcomb $3, (%rdi), %xmm0, %xmm0 # sched: [7:0.50] 155 ; GENERIC-NEXT: vpcomd $3, (%rdi), %xmm0, %xmm0 # sched: [7:0.50] 156 ; GENERIC-NEXT: vpcomq $3, (%rdi), %xmm0, %xmm0 # sched: [7:0.50] 157 ; GENERIC-NEXT: vpcomw $3, (%rdi), %xmm0, %xmm0 # sched: [7:0.50] 158 ; GENERIC-NEXT: #NO_APP 159 ; GENERIC-NEXT: retq # sched: [1:1.00] 160 ; 161 ; BDVER-LABEL: test_vpcom: 162 ; BDVER: # %bb.0: 163 ; BDVER-NEXT: #APP 164 ; BDVER-NEXT: vpcomb $3, %xmm1, %xmm0, %xmm0 165 ; BDVER-NEXT: vpcomd $3, %xmm1, %xmm0, %xmm0 166 ; BDVER-NEXT: vpcomq $3, %xmm1, %xmm0, %xmm0 167 ; BDVER-NEXT: vpcomw $3, %xmm1, %xmm0, %xmm0 168 ; BDVER-NEXT: vpcomb $3, (%rdi), %xmm0, %xmm0 169 ; BDVER-NEXT: vpcomd $3, (%rdi), %xmm0, %xmm0 170 ; BDVER-NEXT: vpcomq $3, (%rdi), %xmm0, %xmm0 171 ; BDVER-NEXT: vpcomw $3, (%rdi), %xmm0, %xmm0 172 ; BDVER-NEXT: #NO_APP 173 ; BDVER-NEXT: retq 174 call void asm sideeffect "vpcomb $3, $1, $0, $0 \0a\09 vpcomd $3, $1, $0, $0 \0a\09 vpcomq $3, $1, $0, $0 \0a\09 vpcomw $3, $1, $0, $0 \0a\09 vpcomb $3, $2, $0, $0 \0a\09 vpcomd $3, $2, $0, $0 \0a\09 vpcomq $3, $2, $0, $0 \0a\09 vpcomw $3, $2, $0, $0", "x,x,*m,i"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> *%a2, i8 3) 175 ret void 176 } 177 178 define void @test_vpcomu(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> *%a2) { 179 ; GENERIC-LABEL: test_vpcomu: 180 ; GENERIC: # %bb.0: 181 ; GENERIC-NEXT: #APP 182 ; GENERIC-NEXT: vpcomub $3, %xmm1, %xmm0, %xmm0 # sched: [1:0.50] 183 ; GENERIC-NEXT: vpcomud $3, %xmm1, %xmm0, %xmm0 # sched: [1:0.50] 184 ; GENERIC-NEXT: vpcomuq $3, %xmm1, %xmm0, %xmm0 # sched: [1:0.50] 185 ; GENERIC-NEXT: vpcomuw $3, %xmm1, %xmm0, %xmm0 # sched: [1:0.50] 186 ; GENERIC-NEXT: vpcomub $3, (%rdi), %xmm0, %xmm0 # sched: [7:0.50] 187 ; GENERIC-NEXT: vpcomud $3, (%rdi), %xmm0, %xmm0 # sched: [7:0.50] 188 ; GENERIC-NEXT: vpcomuq $3, (%rdi), %xmm0, %xmm0 # sched: [7:0.50] 189 ; GENERIC-NEXT: vpcomuw $3, (%rdi), %xmm0, %xmm0 # sched: [7:0.50] 190 ; GENERIC-NEXT: #NO_APP 191 ; GENERIC-NEXT: retq # sched: [1:1.00] 192 ; 193 ; BDVER-LABEL: test_vpcomu: 194 ; BDVER: # %bb.0: 195 ; BDVER-NEXT: #APP 196 ; BDVER-NEXT: vpcomub $3, %xmm1, %xmm0, %xmm0 197 ; BDVER-NEXT: vpcomud $3, %xmm1, %xmm0, %xmm0 198 ; BDVER-NEXT: vpcomuq $3, %xmm1, %xmm0, %xmm0 199 ; BDVER-NEXT: vpcomuw $3, %xmm1, %xmm0, %xmm0 200 ; BDVER-NEXT: vpcomub $3, (%rdi), %xmm0, %xmm0 201 ; BDVER-NEXT: vpcomud $3, (%rdi), %xmm0, %xmm0 202 ; BDVER-NEXT: vpcomuq $3, (%rdi), %xmm0, %xmm0 203 ; BDVER-NEXT: vpcomuw $3, (%rdi), %xmm0, %xmm0 204 ; BDVER-NEXT: #NO_APP 205 ; BDVER-NEXT: retq 206 call void asm sideeffect "vpcomub $3, $1, $0, $0 \0a\09 vpcomud $3, $1, $0, $0 \0a\09 vpcomuq $3, $1, $0, $0 \0a\09 vpcomuw $3, $1, $0, $0 \0a\09 vpcomub $3, $2, $0, $0 \0a\09 vpcomud $3, $2, $0, $0 \0a\09 vpcomuq $3, $2, $0, $0 \0a\09 vpcomuw $3, $2, $0, $0", "x,x,*m,i"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> *%a2, i8 3) 207 ret void 208 } 209 210 define void @test_vpermil2pd_128(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2, <2 x double> *%a3) { 211 ; GENERIC-LABEL: test_vpermil2pd_128: 212 ; GENERIC: # %bb.0: 213 ; GENERIC-NEXT: #APP 214 ; GENERIC-NEXT: vpermil2pd $3, %xmm2, %xmm1, %xmm0, %xmm0 # sched: [1:1.00] 215 ; GENERIC-NEXT: vpermil2pd $3, %xmm2, (%rdi), %xmm0, %xmm0 # sched: [7:1.00] 216 ; GENERIC-NEXT: vpermil2pd $3, (%rdi), %xmm1, %xmm0, %xmm0 # sched: [7:1.00] 217 ; GENERIC-NEXT: #NO_APP 218 ; GENERIC-NEXT: retq # sched: [1:1.00] 219 ; 220 ; BDVER-LABEL: test_vpermil2pd_128: 221 ; BDVER: # %bb.0: 222 ; BDVER-NEXT: #APP 223 ; BDVER-NEXT: vpermil2pd $3, %xmm2, %xmm1, %xmm0, %xmm0 224 ; BDVER-NEXT: vpermil2pd $3, %xmm2, (%rdi), %xmm0, %xmm0 225 ; BDVER-NEXT: vpermil2pd $3, (%rdi), %xmm1, %xmm0, %xmm0 226 ; BDVER-NEXT: #NO_APP 227 ; BDVER-NEXT: retq 228 call void asm sideeffect "vpermil2pd $4, $2, $1, $0, $0 \0a\09 vpermil2pd $4, $2, $3, $0, $0 \0a\09 vpermil2pd $4, $3, $1, $0, $0", "x,x,x,*m,i"(<2 x double> %a0, <2 x double> %a1, <2 x double> %a2, <2 x double> *%a3, i8 3) 229 ret void 230 } 231 232 define void @test_vpermil2pd_256(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2, <4 x double> *%a3) { 233 ; GENERIC-LABEL: test_vpermil2pd_256: 234 ; GENERIC: # %bb.0: 235 ; GENERIC-NEXT: #APP 236 ; GENERIC-NEXT: vpermil2pd $3, %ymm2, %ymm1, %ymm0, %ymm0 # sched: [1:1.00] 237 ; GENERIC-NEXT: vpermil2pd $3, %ymm2, (%rdi), %ymm0, %ymm0 # sched: [8:1.00] 238 ; GENERIC-NEXT: vpermil2pd $3, (%rdi), %ymm1, %ymm0, %ymm0 # sched: [8:1.00] 239 ; GENERIC-NEXT: #NO_APP 240 ; GENERIC-NEXT: vzeroupper # sched: [100:0.33] 241 ; GENERIC-NEXT: retq # sched: [1:1.00] 242 ; 243 ; BDVER-LABEL: test_vpermil2pd_256: 244 ; BDVER: # %bb.0: 245 ; BDVER-NEXT: #APP 246 ; BDVER-NEXT: vpermil2pd $3, %ymm2, %ymm1, %ymm0, %ymm0 247 ; BDVER-NEXT: vpermil2pd $3, %ymm2, (%rdi), %ymm0, %ymm0 248 ; BDVER-NEXT: vpermil2pd $3, (%rdi), %ymm1, %ymm0, %ymm0 249 ; BDVER-NEXT: #NO_APP 250 ; BDVER-NEXT: vzeroupper 251 ; BDVER-NEXT: retq 252 call void asm sideeffect "vpermil2pd $4, $2, $1, $0, $0 \0a\09 vpermil2pd $4, $2, $3, $0, $0 \0a\09 vpermil2pd $4, $3, $1, $0, $0", "x,x,x,*m,i"(<4 x double> %a0, <4 x double> %a1, <4 x double> %a2, <4 x double> *%a3, i8 3) 253 ret void 254 } 255 256 define void @test_vpermil2ps_128(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2, <4 x float> *%a3) { 257 ; GENERIC-LABEL: test_vpermil2ps_128: 258 ; GENERIC: # %bb.0: 259 ; GENERIC-NEXT: #APP 260 ; GENERIC-NEXT: vpermil2ps $3, %xmm2, %xmm1, %xmm0, %xmm0 # sched: [1:1.00] 261 ; GENERIC-NEXT: vpermil2ps $3, %xmm2, (%rdi), %xmm0, %xmm0 # sched: [7:1.00] 262 ; GENERIC-NEXT: vpermil2ps $3, (%rdi), %xmm1, %xmm0, %xmm0 # sched: [7:1.00] 263 ; GENERIC-NEXT: #NO_APP 264 ; GENERIC-NEXT: retq # sched: [1:1.00] 265 ; 266 ; BDVER-LABEL: test_vpermil2ps_128: 267 ; BDVER: # %bb.0: 268 ; BDVER-NEXT: #APP 269 ; BDVER-NEXT: vpermil2ps $3, %xmm2, %xmm1, %xmm0, %xmm0 270 ; BDVER-NEXT: vpermil2ps $3, %xmm2, (%rdi), %xmm0, %xmm0 271 ; BDVER-NEXT: vpermil2ps $3, (%rdi), %xmm1, %xmm0, %xmm0 272 ; BDVER-NEXT: #NO_APP 273 ; BDVER-NEXT: retq 274 call void asm sideeffect "vpermil2ps $4, $2, $1, $0, $0 \0a\09 vpermil2ps $4, $2, $3, $0, $0 \0a\09 vpermil2ps $4, $3, $1, $0, $0", "x,x,x,*m,i"(<4 x float> %a0, <4 x float> %a1, <4 x float> %a2, <4 x float> *%a3, i8 3) 275 ret void 276 } 277 278 define void @test_vpermil2ps_256(<8 x float> %a0, <8 x float> %a1, <8 x float> %a2, <8 x float> *%a3) { 279 ; GENERIC-LABEL: test_vpermil2ps_256: 280 ; GENERIC: # %bb.0: 281 ; GENERIC-NEXT: #APP 282 ; GENERIC-NEXT: vpermil2ps $3, %ymm2, %ymm1, %ymm0, %ymm0 # sched: [1:1.00] 283 ; GENERIC-NEXT: vpermil2ps $3, %ymm2, (%rdi), %ymm0, %ymm0 # sched: [8:1.00] 284 ; GENERIC-NEXT: vpermil2ps $3, (%rdi), %ymm1, %ymm0, %ymm0 # sched: [8:1.00] 285 ; GENERIC-NEXT: #NO_APP 286 ; GENERIC-NEXT: vzeroupper # sched: [100:0.33] 287 ; GENERIC-NEXT: retq # sched: [1:1.00] 288 ; 289 ; BDVER-LABEL: test_vpermil2ps_256: 290 ; BDVER: # %bb.0: 291 ; BDVER-NEXT: #APP 292 ; BDVER-NEXT: vpermil2ps $3, %ymm2, %ymm1, %ymm0, %ymm0 293 ; BDVER-NEXT: vpermil2ps $3, %ymm2, (%rdi), %ymm0, %ymm0 294 ; BDVER-NEXT: vpermil2ps $3, (%rdi), %ymm1, %ymm0, %ymm0 295 ; BDVER-NEXT: #NO_APP 296 ; BDVER-NEXT: vzeroupper 297 ; BDVER-NEXT: retq 298 call void asm sideeffect "vpermil2ps $4, $2, $1, $0, $0 \0a\09 vpermil2ps $4, $2, $3, $0, $0 \0a\09 vpermil2ps $4, $3, $1, $0, $0", "x,x,x,*m,i"(<8 x float> %a0, <8 x float> %a1, <8 x float> %a2, <8 x float> *%a3, i8 3) 299 ret void 300 } 301 302 define void @test_vphaddbd(<2 x i64> %a0, <2 x i64> *%a1) { 303 ; GENERIC-LABEL: test_vphaddbd: 304 ; GENERIC: # %bb.0: 305 ; GENERIC-NEXT: #APP 306 ; GENERIC-NEXT: vphaddbd %xmm0, %xmm0 # sched: [3:1.50] 307 ; GENERIC-NEXT: vphaddbd (%rdi), %xmm0 # sched: [9:1.50] 308 ; GENERIC-NEXT: #NO_APP 309 ; GENERIC-NEXT: retq # sched: [1:1.00] 310 ; 311 ; BDVER-LABEL: test_vphaddbd: 312 ; BDVER: # %bb.0: 313 ; BDVER-NEXT: #APP 314 ; BDVER-NEXT: vphaddbd %xmm0, %xmm0 315 ; BDVER-NEXT: vphaddbd (%rdi), %xmm0 316 ; BDVER-NEXT: #NO_APP 317 ; BDVER-NEXT: retq 318 call void asm sideeffect "vphaddbd $0, $0 \0a\09 vphaddbd $1, $0", "x,*m"(<2 x i64> %a0, <2 x i64> *%a1) 319 ret void 320 } 321 322 define void @test_vphaddbq(<2 x i64> %a0, <2 x i64> *%a1) { 323 ; GENERIC-LABEL: test_vphaddbq: 324 ; GENERIC: # %bb.0: 325 ; GENERIC-NEXT: #APP 326 ; GENERIC-NEXT: vphaddbq %xmm0, %xmm0 # sched: [3:1.50] 327 ; GENERIC-NEXT: vphaddbq (%rdi), %xmm0 # sched: [9:1.50] 328 ; GENERIC-NEXT: #NO_APP 329 ; GENERIC-NEXT: retq # sched: [1:1.00] 330 ; 331 ; BDVER-LABEL: test_vphaddbq: 332 ; BDVER: # %bb.0: 333 ; BDVER-NEXT: #APP 334 ; BDVER-NEXT: vphaddbq %xmm0, %xmm0 335 ; BDVER-NEXT: vphaddbq (%rdi), %xmm0 336 ; BDVER-NEXT: #NO_APP 337 ; BDVER-NEXT: retq 338 call void asm sideeffect "vphaddbq $0, $0 \0a\09 vphaddbq $1, $0", "x,*m"(<2 x i64> %a0, <2 x i64> *%a1) 339 ret void 340 } 341 342 define void @test_vphaddbw(<2 x i64> %a0, <2 x i64> *%a1) { 343 ; GENERIC-LABEL: test_vphaddbw: 344 ; GENERIC: # %bb.0: 345 ; GENERIC-NEXT: #APP 346 ; GENERIC-NEXT: vphaddbw %xmm0, %xmm0 # sched: [3:1.50] 347 ; GENERIC-NEXT: vphaddbw (%rdi), %xmm0 # sched: [9:1.50] 348 ; GENERIC-NEXT: #NO_APP 349 ; GENERIC-NEXT: retq # sched: [1:1.00] 350 ; 351 ; BDVER-LABEL: test_vphaddbw: 352 ; BDVER: # %bb.0: 353 ; BDVER-NEXT: #APP 354 ; BDVER-NEXT: vphaddbw %xmm0, %xmm0 355 ; BDVER-NEXT: vphaddbw (%rdi), %xmm0 356 ; BDVER-NEXT: #NO_APP 357 ; BDVER-NEXT: retq 358 call void asm sideeffect "vphaddbw $0, $0 \0a\09 vphaddbw $1, $0", "x,*m"(<2 x i64> %a0, <2 x i64> *%a1) 359 ret void 360 } 361 362 define void @test_vphadddq(<2 x i64> %a0, <2 x i64> *%a1) { 363 ; GENERIC-LABEL: test_vphadddq: 364 ; GENERIC: # %bb.0: 365 ; GENERIC-NEXT: #APP 366 ; GENERIC-NEXT: vphadddq %xmm0, %xmm0 # sched: [3:1.50] 367 ; GENERIC-NEXT: vphadddq (%rdi), %xmm0 # sched: [9:1.50] 368 ; GENERIC-NEXT: #NO_APP 369 ; GENERIC-NEXT: retq # sched: [1:1.00] 370 ; 371 ; BDVER-LABEL: test_vphadddq: 372 ; BDVER: # %bb.0: 373 ; BDVER-NEXT: #APP 374 ; BDVER-NEXT: vphadddq %xmm0, %xmm0 375 ; BDVER-NEXT: vphadddq (%rdi), %xmm0 376 ; BDVER-NEXT: #NO_APP 377 ; BDVER-NEXT: retq 378 call void asm sideeffect "vphadddq $0, $0 \0a\09 vphadddq $1, $0", "x,*m"(<2 x i64> %a0, <2 x i64> *%a1) 379 ret void 380 } 381 382 define void @test_vphaddubd(<2 x i64> %a0, <2 x i64> *%a1) { 383 ; GENERIC-LABEL: test_vphaddubd: 384 ; GENERIC: # %bb.0: 385 ; GENERIC-NEXT: #APP 386 ; GENERIC-NEXT: vphaddubd %xmm0, %xmm0 # sched: [3:1.50] 387 ; GENERIC-NEXT: vphaddubd (%rdi), %xmm0 # sched: [9:1.50] 388 ; GENERIC-NEXT: #NO_APP 389 ; GENERIC-NEXT: retq # sched: [1:1.00] 390 ; 391 ; BDVER-LABEL: test_vphaddubd: 392 ; BDVER: # %bb.0: 393 ; BDVER-NEXT: #APP 394 ; BDVER-NEXT: vphaddubd %xmm0, %xmm0 395 ; BDVER-NEXT: vphaddubd (%rdi), %xmm0 396 ; BDVER-NEXT: #NO_APP 397 ; BDVER-NEXT: retq 398 call void asm sideeffect "vphaddubd $0, $0 \0a\09 vphaddubd $1, $0", "x,*m"(<2 x i64> %a0, <2 x i64> *%a1) 399 ret void 400 } 401 402 define void @test_vphaddubq(<2 x i64> %a0, <2 x i64> *%a1) { 403 ; GENERIC-LABEL: test_vphaddubq: 404 ; GENERIC: # %bb.0: 405 ; GENERIC-NEXT: #APP 406 ; GENERIC-NEXT: vphaddubq %xmm0, %xmm0 # sched: [3:1.50] 407 ; GENERIC-NEXT: vphaddubq (%rdi), %xmm0 # sched: [9:1.50] 408 ; GENERIC-NEXT: #NO_APP 409 ; GENERIC-NEXT: retq # sched: [1:1.00] 410 ; 411 ; BDVER-LABEL: test_vphaddubq: 412 ; BDVER: # %bb.0: 413 ; BDVER-NEXT: #APP 414 ; BDVER-NEXT: vphaddubq %xmm0, %xmm0 415 ; BDVER-NEXT: vphaddubq (%rdi), %xmm0 416 ; BDVER-NEXT: #NO_APP 417 ; BDVER-NEXT: retq 418 call void asm sideeffect "vphaddubq $0, $0 \0a\09 vphaddubq $1, $0", "x,*m"(<2 x i64> %a0, <2 x i64> *%a1) 419 ret void 420 } 421 422 define void @test_vphaddubw(<2 x i64> %a0, <2 x i64> *%a1) { 423 ; GENERIC-LABEL: test_vphaddubw: 424 ; GENERIC: # %bb.0: 425 ; GENERIC-NEXT: #APP 426 ; GENERIC-NEXT: vphaddubw %xmm0, %xmm0 # sched: [3:1.50] 427 ; GENERIC-NEXT: vphaddubw (%rdi), %xmm0 # sched: [9:1.50] 428 ; GENERIC-NEXT: #NO_APP 429 ; GENERIC-NEXT: retq # sched: [1:1.00] 430 ; 431 ; BDVER-LABEL: test_vphaddubw: 432 ; BDVER: # %bb.0: 433 ; BDVER-NEXT: #APP 434 ; BDVER-NEXT: vphaddubw %xmm0, %xmm0 435 ; BDVER-NEXT: vphaddubw (%rdi), %xmm0 436 ; BDVER-NEXT: #NO_APP 437 ; BDVER-NEXT: retq 438 call void asm sideeffect "vphaddubw $0, $0 \0a\09 vphaddubw $1, $0", "x,*m"(<2 x i64> %a0, <2 x i64> *%a1) 439 ret void 440 } 441 442 define void @test_vphaddudq(<2 x i64> %a0, <2 x i64> *%a1) { 443 ; GENERIC-LABEL: test_vphaddudq: 444 ; GENERIC: # %bb.0: 445 ; GENERIC-NEXT: #APP 446 ; GENERIC-NEXT: vphaddudq %xmm0, %xmm0 # sched: [3:1.50] 447 ; GENERIC-NEXT: vphaddudq (%rdi), %xmm0 # sched: [9:1.50] 448 ; GENERIC-NEXT: #NO_APP 449 ; GENERIC-NEXT: retq # sched: [1:1.00] 450 ; 451 ; BDVER-LABEL: test_vphaddudq: 452 ; BDVER: # %bb.0: 453 ; BDVER-NEXT: #APP 454 ; BDVER-NEXT: vphaddudq %xmm0, %xmm0 455 ; BDVER-NEXT: vphaddudq (%rdi), %xmm0 456 ; BDVER-NEXT: #NO_APP 457 ; BDVER-NEXT: retq 458 call void asm sideeffect "vphaddudq $0, $0 \0a\09 vphaddudq $1, $0", "x,*m"(<2 x i64> %a0, <2 x i64> *%a1) 459 ret void 460 } 461 462 define void @test_vphadduwd(<2 x i64> %a0, <2 x i64> *%a1) { 463 ; GENERIC-LABEL: test_vphadduwd: 464 ; GENERIC: # %bb.0: 465 ; GENERIC-NEXT: #APP 466 ; GENERIC-NEXT: vphadduwd %xmm0, %xmm0 # sched: [3:1.50] 467 ; GENERIC-NEXT: vphadduwd (%rdi), %xmm0 # sched: [9:1.50] 468 ; GENERIC-NEXT: #NO_APP 469 ; GENERIC-NEXT: retq # sched: [1:1.00] 470 ; 471 ; BDVER-LABEL: test_vphadduwd: 472 ; BDVER: # %bb.0: 473 ; BDVER-NEXT: #APP 474 ; BDVER-NEXT: vphadduwd %xmm0, %xmm0 475 ; BDVER-NEXT: vphadduwd (%rdi), %xmm0 476 ; BDVER-NEXT: #NO_APP 477 ; BDVER-NEXT: retq 478 call void asm sideeffect "vphadduwd $0, $0 \0a\09 vphadduwd $1, $0", "x,*m"(<2 x i64> %a0, <2 x i64> *%a1) 479 ret void 480 } 481 482 define void @test_vphadduwq(<2 x i64> %a0, <2 x i64> *%a1) { 483 ; GENERIC-LABEL: test_vphadduwq: 484 ; GENERIC: # %bb.0: 485 ; GENERIC-NEXT: #APP 486 ; GENERIC-NEXT: vphadduwq %xmm0, %xmm0 # sched: [3:1.50] 487 ; GENERIC-NEXT: vphadduwq (%rdi), %xmm0 # sched: [9:1.50] 488 ; GENERIC-NEXT: #NO_APP 489 ; GENERIC-NEXT: retq # sched: [1:1.00] 490 ; 491 ; BDVER-LABEL: test_vphadduwq: 492 ; BDVER: # %bb.0: 493 ; BDVER-NEXT: #APP 494 ; BDVER-NEXT: vphadduwq %xmm0, %xmm0 495 ; BDVER-NEXT: vphadduwq (%rdi), %xmm0 496 ; BDVER-NEXT: #NO_APP 497 ; BDVER-NEXT: retq 498 call void asm sideeffect "vphadduwq $0, $0 \0a\09 vphadduwq $1, $0", "x,*m"(<2 x i64> %a0, <2 x i64> *%a1) 499 ret void 500 } 501 502 define void @test_vphaddwd(<2 x i64> %a0, <2 x i64> *%a1) { 503 ; GENERIC-LABEL: test_vphaddwd: 504 ; GENERIC: # %bb.0: 505 ; GENERIC-NEXT: #APP 506 ; GENERIC-NEXT: vphaddwd %xmm0, %xmm0 # sched: [3:1.50] 507 ; GENERIC-NEXT: vphaddwd (%rdi), %xmm0 # sched: [9:1.50] 508 ; GENERIC-NEXT: #NO_APP 509 ; GENERIC-NEXT: retq # sched: [1:1.00] 510 ; 511 ; BDVER-LABEL: test_vphaddwd: 512 ; BDVER: # %bb.0: 513 ; BDVER-NEXT: #APP 514 ; BDVER-NEXT: vphaddwd %xmm0, %xmm0 515 ; BDVER-NEXT: vphaddwd (%rdi), %xmm0 516 ; BDVER-NEXT: #NO_APP 517 ; BDVER-NEXT: retq 518 call void asm sideeffect "vphaddwd $0, $0 \0a\09 vphaddwd $1, $0", "x,*m"(<2 x i64> %a0, <2 x i64> *%a1) 519 ret void 520 } 521 522 define void @test_vphaddwq(<2 x i64> %a0, <2 x i64> *%a1) { 523 ; GENERIC-LABEL: test_vphaddwq: 524 ; GENERIC: # %bb.0: 525 ; GENERIC-NEXT: #APP 526 ; GENERIC-NEXT: vphaddwq %xmm0, %xmm0 # sched: [3:1.50] 527 ; GENERIC-NEXT: vphaddwq (%rdi), %xmm0 # sched: [9:1.50] 528 ; GENERIC-NEXT: #NO_APP 529 ; GENERIC-NEXT: retq # sched: [1:1.00] 530 ; 531 ; BDVER-LABEL: test_vphaddwq: 532 ; BDVER: # %bb.0: 533 ; BDVER-NEXT: #APP 534 ; BDVER-NEXT: vphaddwq %xmm0, %xmm0 535 ; BDVER-NEXT: vphaddwq (%rdi), %xmm0 536 ; BDVER-NEXT: #NO_APP 537 ; BDVER-NEXT: retq 538 call void asm sideeffect "vphaddwq $0, $0 \0a\09 vphaddwq $1, $0", "x,*m"(<2 x i64> %a0, <2 x i64> *%a1) 539 ret void 540 } 541 542 define void @test_vphsubbw(<2 x i64> %a0, <2 x i64> *%a1) { 543 ; GENERIC-LABEL: test_vphsubbw: 544 ; GENERIC: # %bb.0: 545 ; GENERIC-NEXT: #APP 546 ; GENERIC-NEXT: vphsubbw %xmm0, %xmm0 # sched: [3:1.50] 547 ; GENERIC-NEXT: vphsubbw (%rdi), %xmm0 # sched: [9:1.50] 548 ; GENERIC-NEXT: #NO_APP 549 ; GENERIC-NEXT: retq # sched: [1:1.00] 550 ; 551 ; BDVER-LABEL: test_vphsubbw: 552 ; BDVER: # %bb.0: 553 ; BDVER-NEXT: #APP 554 ; BDVER-NEXT: vphsubbw %xmm0, %xmm0 555 ; BDVER-NEXT: vphsubbw (%rdi), %xmm0 556 ; BDVER-NEXT: #NO_APP 557 ; BDVER-NEXT: retq 558 call void asm sideeffect "vphsubbw $0, $0 \0a\09 vphsubbw $1, $0", "x,*m"(<2 x i64> %a0, <2 x i64> *%a1) 559 ret void 560 } 561 562 define void @test_vphsubdq(<2 x i64> %a0, <2 x i64> *%a1) { 563 ; GENERIC-LABEL: test_vphsubdq: 564 ; GENERIC: # %bb.0: 565 ; GENERIC-NEXT: #APP 566 ; GENERIC-NEXT: vphsubdq %xmm0, %xmm0 # sched: [3:1.50] 567 ; GENERIC-NEXT: vphsubdq (%rdi), %xmm0 # sched: [9:1.50] 568 ; GENERIC-NEXT: #NO_APP 569 ; GENERIC-NEXT: retq # sched: [1:1.00] 570 ; 571 ; BDVER-LABEL: test_vphsubdq: 572 ; BDVER: # %bb.0: 573 ; BDVER-NEXT: #APP 574 ; BDVER-NEXT: vphsubdq %xmm0, %xmm0 575 ; BDVER-NEXT: vphsubdq (%rdi), %xmm0 576 ; BDVER-NEXT: #NO_APP 577 ; BDVER-NEXT: retq 578 call void asm sideeffect "vphsubdq $0, $0 \0a\09 vphsubdq $1, $0", "x,*m"(<2 x i64> %a0, <2 x i64> *%a1) 579 ret void 580 } 581 582 define void @test_vphsubwd(<2 x i64> %a0, <2 x i64> *%a1) { 583 ; GENERIC-LABEL: test_vphsubwd: 584 ; GENERIC: # %bb.0: 585 ; GENERIC-NEXT: #APP 586 ; GENERIC-NEXT: vphsubwd %xmm0, %xmm0 # sched: [3:1.50] 587 ; GENERIC-NEXT: vphsubwd (%rdi), %xmm0 # sched: [9:1.50] 588 ; GENERIC-NEXT: #NO_APP 589 ; GENERIC-NEXT: retq # sched: [1:1.00] 590 ; 591 ; BDVER-LABEL: test_vphsubwd: 592 ; BDVER: # %bb.0: 593 ; BDVER-NEXT: #APP 594 ; BDVER-NEXT: vphsubwd %xmm0, %xmm0 595 ; BDVER-NEXT: vphsubwd (%rdi), %xmm0 596 ; BDVER-NEXT: #NO_APP 597 ; BDVER-NEXT: retq 598 call void asm sideeffect "vphsubwd $0, $0 \0a\09 vphsubwd $1, $0", "x,*m"(<2 x i64> %a0, <2 x i64> *%a1) 599 ret void 600 } 601 602 define void @test_vpmacsdd(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) { 603 ; GENERIC-LABEL: test_vpmacsdd: 604 ; GENERIC: # %bb.0: 605 ; GENERIC-NEXT: #APP 606 ; GENERIC-NEXT: vpmacsdd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00] 607 ; GENERIC-NEXT: vpmacsdd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00] 608 ; GENERIC-NEXT: #NO_APP 609 ; GENERIC-NEXT: retq # sched: [1:1.00] 610 ; 611 ; BDVER-LABEL: test_vpmacsdd: 612 ; BDVER: # %bb.0: 613 ; BDVER-NEXT: #APP 614 ; BDVER-NEXT: vpmacsdd %xmm2, %xmm1, %xmm0, %xmm0 615 ; BDVER-NEXT: vpmacsdd %xmm2, (%rdi), %xmm0, %xmm0 616 ; BDVER-NEXT: #NO_APP 617 ; BDVER-NEXT: retq 618 call void asm sideeffect "vpmacsdd $2, $1, $0, $0 \0a\09 vpmacsdd $2, $3, $0, $0", "x,x,x,*m"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) 619 ret void 620 } 621 622 define void @test_vpmacsdqh(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) { 623 ; GENERIC-LABEL: test_vpmacsdqh: 624 ; GENERIC: # %bb.0: 625 ; GENERIC-NEXT: #APP 626 ; GENERIC-NEXT: vpmacsdqh %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00] 627 ; GENERIC-NEXT: vpmacsdqh %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00] 628 ; GENERIC-NEXT: #NO_APP 629 ; GENERIC-NEXT: retq # sched: [1:1.00] 630 ; 631 ; BDVER-LABEL: test_vpmacsdqh: 632 ; BDVER: # %bb.0: 633 ; BDVER-NEXT: #APP 634 ; BDVER-NEXT: vpmacsdqh %xmm2, %xmm1, %xmm0, %xmm0 635 ; BDVER-NEXT: vpmacsdqh %xmm2, (%rdi), %xmm0, %xmm0 636 ; BDVER-NEXT: #NO_APP 637 ; BDVER-NEXT: retq 638 call void asm sideeffect "vpmacsdqh $2, $1, $0, $0 \0a\09 vpmacsdqh $2, $3, $0, $0", "x,x,x,*m"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) 639 ret void 640 } 641 642 define void @test_vpmacsdql(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) { 643 ; GENERIC-LABEL: test_vpmacsdql: 644 ; GENERIC: # %bb.0: 645 ; GENERIC-NEXT: #APP 646 ; GENERIC-NEXT: vpmacsdql %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00] 647 ; GENERIC-NEXT: vpmacsdql %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00] 648 ; GENERIC-NEXT: #NO_APP 649 ; GENERIC-NEXT: retq # sched: [1:1.00] 650 ; 651 ; BDVER-LABEL: test_vpmacsdql: 652 ; BDVER: # %bb.0: 653 ; BDVER-NEXT: #APP 654 ; BDVER-NEXT: vpmacsdql %xmm2, %xmm1, %xmm0, %xmm0 655 ; BDVER-NEXT: vpmacsdql %xmm2, (%rdi), %xmm0, %xmm0 656 ; BDVER-NEXT: #NO_APP 657 ; BDVER-NEXT: retq 658 call void asm sideeffect "vpmacsdql $2, $1, $0, $0 \0a\09 vpmacsdql $2, $3, $0, $0", "x,x,x,*m"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) 659 ret void 660 } 661 662 define void @test_vpmacssdd(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) { 663 ; GENERIC-LABEL: test_vpmacssdd: 664 ; GENERIC: # %bb.0: 665 ; GENERIC-NEXT: #APP 666 ; GENERIC-NEXT: vpmacssdd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00] 667 ; GENERIC-NEXT: vpmacssdd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00] 668 ; GENERIC-NEXT: #NO_APP 669 ; GENERIC-NEXT: retq # sched: [1:1.00] 670 ; 671 ; BDVER-LABEL: test_vpmacssdd: 672 ; BDVER: # %bb.0: 673 ; BDVER-NEXT: #APP 674 ; BDVER-NEXT: vpmacssdd %xmm2, %xmm1, %xmm0, %xmm0 675 ; BDVER-NEXT: vpmacssdd %xmm2, (%rdi), %xmm0, %xmm0 676 ; BDVER-NEXT: #NO_APP 677 ; BDVER-NEXT: retq 678 call void asm sideeffect "vpmacssdd $2, $1, $0, $0 \0a\09 vpmacssdd $2, $3, $0, $0", "x,x,x,*m"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) 679 ret void 680 } 681 682 define void @test_vpmacssdqh(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) { 683 ; GENERIC-LABEL: test_vpmacssdqh: 684 ; GENERIC: # %bb.0: 685 ; GENERIC-NEXT: #APP 686 ; GENERIC-NEXT: vpmacssdqh %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00] 687 ; GENERIC-NEXT: vpmacssdqh %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00] 688 ; GENERIC-NEXT: #NO_APP 689 ; GENERIC-NEXT: retq # sched: [1:1.00] 690 ; 691 ; BDVER-LABEL: test_vpmacssdqh: 692 ; BDVER: # %bb.0: 693 ; BDVER-NEXT: #APP 694 ; BDVER-NEXT: vpmacssdqh %xmm2, %xmm1, %xmm0, %xmm0 695 ; BDVER-NEXT: vpmacssdqh %xmm2, (%rdi), %xmm0, %xmm0 696 ; BDVER-NEXT: #NO_APP 697 ; BDVER-NEXT: retq 698 call void asm sideeffect "vpmacssdqh $2, $1, $0, $0 \0a\09 vpmacssdqh $2, $3, $0, $0", "x,x,x,*m"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) 699 ret void 700 } 701 702 define void @test_vpmacssdql(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) { 703 ; GENERIC-LABEL: test_vpmacssdql: 704 ; GENERIC: # %bb.0: 705 ; GENERIC-NEXT: #APP 706 ; GENERIC-NEXT: vpmacssdql %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00] 707 ; GENERIC-NEXT: vpmacssdql %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00] 708 ; GENERIC-NEXT: #NO_APP 709 ; GENERIC-NEXT: retq # sched: [1:1.00] 710 ; 711 ; BDVER-LABEL: test_vpmacssdql: 712 ; BDVER: # %bb.0: 713 ; BDVER-NEXT: #APP 714 ; BDVER-NEXT: vpmacssdql %xmm2, %xmm1, %xmm0, %xmm0 715 ; BDVER-NEXT: vpmacssdql %xmm2, (%rdi), %xmm0, %xmm0 716 ; BDVER-NEXT: #NO_APP 717 ; BDVER-NEXT: retq 718 call void asm sideeffect "vpmacssdql $2, $1, $0, $0 \0a\09 vpmacssdql $2, $3, $0, $0", "x,x,x,*m"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) 719 ret void 720 } 721 722 define void @test_vpmacsswd(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) { 723 ; GENERIC-LABEL: test_vpmacsswd: 724 ; GENERIC: # %bb.0: 725 ; GENERIC-NEXT: #APP 726 ; GENERIC-NEXT: vpmacsswd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00] 727 ; GENERIC-NEXT: vpmacsswd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00] 728 ; GENERIC-NEXT: #NO_APP 729 ; GENERIC-NEXT: retq # sched: [1:1.00] 730 ; 731 ; BDVER-LABEL: test_vpmacsswd: 732 ; BDVER: # %bb.0: 733 ; BDVER-NEXT: #APP 734 ; BDVER-NEXT: vpmacsswd %xmm2, %xmm1, %xmm0, %xmm0 735 ; BDVER-NEXT: vpmacsswd %xmm2, (%rdi), %xmm0, %xmm0 736 ; BDVER-NEXT: #NO_APP 737 ; BDVER-NEXT: retq 738 call void asm sideeffect "vpmacsswd $2, $1, $0, $0 \0a\09 vpmacsswd $2, $3, $0, $0", "x,x,x,*m"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) 739 ret void 740 } 741 742 define void @test_vpmacssww(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) { 743 ; GENERIC-LABEL: test_vpmacssww: 744 ; GENERIC: # %bb.0: 745 ; GENERIC-NEXT: #APP 746 ; GENERIC-NEXT: vpmacssww %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00] 747 ; GENERIC-NEXT: vpmacssww %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00] 748 ; GENERIC-NEXT: #NO_APP 749 ; GENERIC-NEXT: retq # sched: [1:1.00] 750 ; 751 ; BDVER-LABEL: test_vpmacssww: 752 ; BDVER: # %bb.0: 753 ; BDVER-NEXT: #APP 754 ; BDVER-NEXT: vpmacssww %xmm2, %xmm1, %xmm0, %xmm0 755 ; BDVER-NEXT: vpmacssww %xmm2, (%rdi), %xmm0, %xmm0 756 ; BDVER-NEXT: #NO_APP 757 ; BDVER-NEXT: retq 758 call void asm sideeffect "vpmacssww $2, $1, $0, $0 \0a\09 vpmacssww $2, $3, $0, $0", "x,x,x,*m"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) 759 ret void 760 } 761 762 define void @test_vpmacswd(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) { 763 ; GENERIC-LABEL: test_vpmacswd: 764 ; GENERIC: # %bb.0: 765 ; GENERIC-NEXT: #APP 766 ; GENERIC-NEXT: vpmacswd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00] 767 ; GENERIC-NEXT: vpmacswd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00] 768 ; GENERIC-NEXT: #NO_APP 769 ; GENERIC-NEXT: retq # sched: [1:1.00] 770 ; 771 ; BDVER-LABEL: test_vpmacswd: 772 ; BDVER: # %bb.0: 773 ; BDVER-NEXT: #APP 774 ; BDVER-NEXT: vpmacswd %xmm2, %xmm1, %xmm0, %xmm0 775 ; BDVER-NEXT: vpmacswd %xmm2, (%rdi), %xmm0, %xmm0 776 ; BDVER-NEXT: #NO_APP 777 ; BDVER-NEXT: retq 778 call void asm sideeffect "vpmacswd $2, $1, $0, $0 \0a\09 vpmacswd $2, $3, $0, $0", "x,x,x,*m"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) 779 ret void 780 } 781 782 define void @test_vpmacsww(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) { 783 ; GENERIC-LABEL: test_vpmacsww: 784 ; GENERIC: # %bb.0: 785 ; GENERIC-NEXT: #APP 786 ; GENERIC-NEXT: vpmacsww %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00] 787 ; GENERIC-NEXT: vpmacsww %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00] 788 ; GENERIC-NEXT: #NO_APP 789 ; GENERIC-NEXT: retq # sched: [1:1.00] 790 ; 791 ; BDVER-LABEL: test_vpmacsww: 792 ; BDVER: # %bb.0: 793 ; BDVER-NEXT: #APP 794 ; BDVER-NEXT: vpmacsww %xmm2, %xmm1, %xmm0, %xmm0 795 ; BDVER-NEXT: vpmacsww %xmm2, (%rdi), %xmm0, %xmm0 796 ; BDVER-NEXT: #NO_APP 797 ; BDVER-NEXT: retq 798 call void asm sideeffect "vpmacsww $2, $1, $0, $0 \0a\09 vpmacsww $2, $3, $0, $0", "x,x,x,*m"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) 799 ret void 800 } 801 802 define void @test_vpmadcsswd(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) { 803 ; GENERIC-LABEL: test_vpmadcsswd: 804 ; GENERIC: # %bb.0: 805 ; GENERIC-NEXT: #APP 806 ; GENERIC-NEXT: vpmadcsswd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00] 807 ; GENERIC-NEXT: vpmadcsswd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00] 808 ; GENERIC-NEXT: #NO_APP 809 ; GENERIC-NEXT: retq # sched: [1:1.00] 810 ; 811 ; BDVER-LABEL: test_vpmadcsswd: 812 ; BDVER: # %bb.0: 813 ; BDVER-NEXT: #APP 814 ; BDVER-NEXT: vpmadcsswd %xmm2, %xmm1, %xmm0, %xmm0 815 ; BDVER-NEXT: vpmadcsswd %xmm2, (%rdi), %xmm0, %xmm0 816 ; BDVER-NEXT: #NO_APP 817 ; BDVER-NEXT: retq 818 call void asm sideeffect "vpmadcsswd $2, $1, $0, $0 \0a\09 vpmadcsswd $2, $3, $0, $0", "x,x,x,*m"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) 819 ret void 820 } 821 822 define void @test_vpmadcswd(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) { 823 ; GENERIC-LABEL: test_vpmadcswd: 824 ; GENERIC: # %bb.0: 825 ; GENERIC-NEXT: #APP 826 ; GENERIC-NEXT: vpmadcswd %xmm2, %xmm1, %xmm0, %xmm0 # sched: [5:1.00] 827 ; GENERIC-NEXT: vpmadcswd %xmm2, (%rdi), %xmm0, %xmm0 # sched: [11:1.00] 828 ; GENERIC-NEXT: #NO_APP 829 ; GENERIC-NEXT: retq # sched: [1:1.00] 830 ; 831 ; BDVER-LABEL: test_vpmadcswd: 832 ; BDVER: # %bb.0: 833 ; BDVER-NEXT: #APP 834 ; BDVER-NEXT: vpmadcswd %xmm2, %xmm1, %xmm0, %xmm0 835 ; BDVER-NEXT: vpmadcswd %xmm2, (%rdi), %xmm0, %xmm0 836 ; BDVER-NEXT: #NO_APP 837 ; BDVER-NEXT: retq 838 call void asm sideeffect "vpmadcswd $2, $1, $0, $0 \0a\09 vpmadcswd $2, $3, $0, $0", "x,x,x,*m"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) 839 ret void 840 } 841 842 define void @test_vpperm(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) { 843 ; GENERIC-LABEL: test_vpperm: 844 ; GENERIC: # %bb.0: 845 ; GENERIC-NEXT: #APP 846 ; GENERIC-NEXT: vpperm %xmm2, %xmm1, %xmm0, %xmm0 # sched: [1:0.50] 847 ; GENERIC-NEXT: vpperm (%rdi), %xmm1, %xmm0, %xmm0 # sched: [7:0.50] 848 ; GENERIC-NEXT: vpperm %xmm2, (%rdi), %xmm0, %xmm0 # sched: [7:0.50] 849 ; GENERIC-NEXT: #NO_APP 850 ; GENERIC-NEXT: retq # sched: [1:1.00] 851 ; 852 ; BDVER-LABEL: test_vpperm: 853 ; BDVER: # %bb.0: 854 ; BDVER-NEXT: #APP 855 ; BDVER-NEXT: vpperm %xmm2, %xmm1, %xmm0, %xmm0 856 ; BDVER-NEXT: vpperm (%rdi), %xmm1, %xmm0, %xmm0 857 ; BDVER-NEXT: vpperm %xmm2, (%rdi), %xmm0, %xmm0 858 ; BDVER-NEXT: #NO_APP 859 ; BDVER-NEXT: retq 860 call void asm sideeffect "vpperm $2, $1, $0, $0 \0A\09 vpperm $3, $1, $0, $0 \0A\09 vpperm $2, $3, $0, $0", "x,x,x,*m"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> %a2, <2 x i64> *%a3) 861 ret void 862 } 863 864 define void @test_vprot(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> *%a2) { 865 ; GENERIC-LABEL: test_vprot: 866 ; GENERIC: # %bb.0: 867 ; GENERIC-NEXT: #APP 868 ; GENERIC-NEXT: vprotb %xmm1, %xmm0, %xmm0 # sched: [1:1.00] 869 ; GENERIC-NEXT: vprotd %xmm1, %xmm0, %xmm0 # sched: [1:1.00] 870 ; GENERIC-NEXT: vprotq %xmm1, %xmm0, %xmm0 # sched: [1:1.00] 871 ; GENERIC-NEXT: vprotw %xmm1, %xmm0, %xmm0 # sched: [1:1.00] 872 ; GENERIC-NEXT: vprotb (%rdi), %xmm0, %xmm0 # sched: [7:1.00] 873 ; GENERIC-NEXT: vprotd (%rdi), %xmm0, %xmm0 # sched: [7:1.00] 874 ; GENERIC-NEXT: vprotq (%rdi), %xmm0, %xmm0 # sched: [7:1.00] 875 ; GENERIC-NEXT: vprotw (%rdi), %xmm0, %xmm0 # sched: [7:1.00] 876 ; GENERIC-NEXT: vprotb %xmm0, (%rdi), %xmm0 # sched: [7:1.00] 877 ; GENERIC-NEXT: vprotd %xmm0, (%rdi), %xmm0 # sched: [7:1.00] 878 ; GENERIC-NEXT: vprotq %xmm0, (%rdi), %xmm0 # sched: [7:1.00] 879 ; GENERIC-NEXT: vprotw %xmm0, (%rdi), %xmm0 # sched: [7:1.00] 880 ; GENERIC-NEXT: vprotb $7, %xmm0, %xmm0 # sched: [1:1.00] 881 ; GENERIC-NEXT: vprotd $7, %xmm0, %xmm0 # sched: [1:1.00] 882 ; GENERIC-NEXT: vprotq $7, %xmm0, %xmm0 # sched: [1:1.00] 883 ; GENERIC-NEXT: vprotw $7, %xmm0, %xmm0 # sched: [1:1.00] 884 ; GENERIC-NEXT: vprotb $7, (%rdi), %xmm0 # sched: [7:1.00] 885 ; GENERIC-NEXT: vprotd $7, (%rdi), %xmm0 # sched: [7:1.00] 886 ; GENERIC-NEXT: vprotq $7, (%rdi), %xmm0 # sched: [7:1.00] 887 ; GENERIC-NEXT: vprotw $7, (%rdi), %xmm0 # sched: [7:1.00] 888 ; GENERIC-NEXT: #NO_APP 889 ; GENERIC-NEXT: retq # sched: [1:1.00] 890 ; 891 ; BDVER-LABEL: test_vprot: 892 ; BDVER: # %bb.0: 893 ; BDVER-NEXT: #APP 894 ; BDVER-NEXT: vprotb %xmm1, %xmm0, %xmm0 895 ; BDVER-NEXT: vprotd %xmm1, %xmm0, %xmm0 896 ; BDVER-NEXT: vprotq %xmm1, %xmm0, %xmm0 897 ; BDVER-NEXT: vprotw %xmm1, %xmm0, %xmm0 898 ; BDVER-NEXT: vprotb (%rdi), %xmm0, %xmm0 899 ; BDVER-NEXT: vprotd (%rdi), %xmm0, %xmm0 900 ; BDVER-NEXT: vprotq (%rdi), %xmm0, %xmm0 901 ; BDVER-NEXT: vprotw (%rdi), %xmm0, %xmm0 902 ; BDVER-NEXT: vprotb %xmm0, (%rdi), %xmm0 903 ; BDVER-NEXT: vprotd %xmm0, (%rdi), %xmm0 904 ; BDVER-NEXT: vprotq %xmm0, (%rdi), %xmm0 905 ; BDVER-NEXT: vprotw %xmm0, (%rdi), %xmm0 906 ; BDVER-NEXT: vprotb $7, %xmm0, %xmm0 907 ; BDVER-NEXT: vprotd $7, %xmm0, %xmm0 908 ; BDVER-NEXT: vprotq $7, %xmm0, %xmm0 909 ; BDVER-NEXT: vprotw $7, %xmm0, %xmm0 910 ; BDVER-NEXT: vprotb $7, (%rdi), %xmm0 911 ; BDVER-NEXT: vprotd $7, (%rdi), %xmm0 912 ; BDVER-NEXT: vprotq $7, (%rdi), %xmm0 913 ; BDVER-NEXT: vprotw $7, (%rdi), %xmm0 914 ; BDVER-NEXT: #NO_APP 915 ; BDVER-NEXT: retq 916 call void asm sideeffect "vprotb $1, $0, $0 \0A\09 vprotd $1, $0, $0 \0A\09 vprotq $1, $0, $0 \0A\09 vprotw $1, $0, $0 \0A\09 vprotb $2, $0, $0 \0A\09 vprotd $2, $0, $0 \0A\09 vprotq $2, $0, $0 \0A\09 vprotw $2, $0, $0 \0A\09 vprotb $0, $2, $0 \0A\09 vprotd $0, $2, $0 \0A\09 vprotq $0, $2, $0 \0A\09 vprotw $0, $2, $0 \0A\09 vprotb $3, $0, $0 \0A\09 vprotd $3, $0, $0 \0A\09 vprotq $3, $0, $0 \0A\09 vprotw $3, $0, $0 \0A\09 vprotb $3, $2, $0 \0A\09 vprotd $3, $2, $0 \0A\09 vprotq $3, $2, $0 \0A\09 vprotw $3, $2, $0", "x,x,*m,i"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> *%a2, i8 7) 917 ret void 918 } 919 920 define void @test_vpsha(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> *%a2) { 921 ; GENERIC-LABEL: test_vpsha: 922 ; GENERIC: # %bb.0: 923 ; GENERIC-NEXT: #APP 924 ; GENERIC-NEXT: vpshab %xmm1, %xmm0, %xmm0 # sched: [1:1.00] 925 ; GENERIC-NEXT: vpshad %xmm1, %xmm0, %xmm0 # sched: [1:1.00] 926 ; GENERIC-NEXT: vpshaq %xmm1, %xmm0, %xmm0 # sched: [1:1.00] 927 ; GENERIC-NEXT: vpshaw %xmm1, %xmm0, %xmm0 # sched: [1:1.00] 928 ; GENERIC-NEXT: vpshab (%rdi), %xmm0, %xmm0 # sched: [7:1.00] 929 ; GENERIC-NEXT: vpshad (%rdi), %xmm0, %xmm0 # sched: [7:1.00] 930 ; GENERIC-NEXT: vpshaq (%rdi), %xmm0, %xmm0 # sched: [7:1.00] 931 ; GENERIC-NEXT: vpshaw (%rdi), %xmm0, %xmm0 # sched: [7:1.00] 932 ; GENERIC-NEXT: vpshab %xmm0, (%rdi), %xmm0 # sched: [7:1.00] 933 ; GENERIC-NEXT: vpshad %xmm0, (%rdi), %xmm0 # sched: [7:1.00] 934 ; GENERIC-NEXT: vpshaq %xmm0, (%rdi), %xmm0 # sched: [7:1.00] 935 ; GENERIC-NEXT: vpshaw %xmm0, (%rdi), %xmm0 # sched: [7:1.00] 936 ; GENERIC-NEXT: #NO_APP 937 ; GENERIC-NEXT: retq # sched: [1:1.00] 938 ; 939 ; BDVER-LABEL: test_vpsha: 940 ; BDVER: # %bb.0: 941 ; BDVER-NEXT: #APP 942 ; BDVER-NEXT: vpshab %xmm1, %xmm0, %xmm0 943 ; BDVER-NEXT: vpshad %xmm1, %xmm0, %xmm0 944 ; BDVER-NEXT: vpshaq %xmm1, %xmm0, %xmm0 945 ; BDVER-NEXT: vpshaw %xmm1, %xmm0, %xmm0 946 ; BDVER-NEXT: vpshab (%rdi), %xmm0, %xmm0 947 ; BDVER-NEXT: vpshad (%rdi), %xmm0, %xmm0 948 ; BDVER-NEXT: vpshaq (%rdi), %xmm0, %xmm0 949 ; BDVER-NEXT: vpshaw (%rdi), %xmm0, %xmm0 950 ; BDVER-NEXT: vpshab %xmm0, (%rdi), %xmm0 951 ; BDVER-NEXT: vpshad %xmm0, (%rdi), %xmm0 952 ; BDVER-NEXT: vpshaq %xmm0, (%rdi), %xmm0 953 ; BDVER-NEXT: vpshaw %xmm0, (%rdi), %xmm0 954 ; BDVER-NEXT: #NO_APP 955 ; BDVER-NEXT: retq 956 call void asm sideeffect "vpshab $1, $0, $0 \0A\09 vpshad $1, $0, $0 \0A\09 vpshaq $1, $0, $0 \0A\09 vpshaw $1, $0, $0 \0A\09 vpshab $2, $0, $0 \0A\09 vpshad $2, $0, $0 \0A\09 vpshaq $2, $0, $0 \0A\09 vpshaw $2, $0, $0 \0A\09 vpshab $0, $2, $0 \0A\09 vpshad $0, $2, $0 \0A\09 vpshaq $0, $2, $0 \0A\09 vpshaw $0, $2, $0", "x,x,*m"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> *%a2) 957 ret void 958 } 959 960 define void @test_vpshl(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> *%a2) { 961 ; GENERIC-LABEL: test_vpshl: 962 ; GENERIC: # %bb.0: 963 ; GENERIC-NEXT: #APP 964 ; GENERIC-NEXT: vpshlb %xmm1, %xmm0, %xmm0 # sched: [1:1.00] 965 ; GENERIC-NEXT: vpshld %xmm1, %xmm0, %xmm0 # sched: [1:1.00] 966 ; GENERIC-NEXT: vpshlq %xmm1, %xmm0, %xmm0 # sched: [1:1.00] 967 ; GENERIC-NEXT: vpshlw %xmm1, %xmm0, %xmm0 # sched: [1:1.00] 968 ; GENERIC-NEXT: vpshlb (%rdi), %xmm0, %xmm0 # sched: [7:1.00] 969 ; GENERIC-NEXT: vpshld (%rdi), %xmm0, %xmm0 # sched: [7:1.00] 970 ; GENERIC-NEXT: vpshlq (%rdi), %xmm0, %xmm0 # sched: [7:1.00] 971 ; GENERIC-NEXT: vpshlw (%rdi), %xmm0, %xmm0 # sched: [7:1.00] 972 ; GENERIC-NEXT: vpshlb %xmm0, (%rdi), %xmm0 # sched: [7:1.00] 973 ; GENERIC-NEXT: vpshld %xmm0, (%rdi), %xmm0 # sched: [7:1.00] 974 ; GENERIC-NEXT: vpshlq %xmm0, (%rdi), %xmm0 # sched: [7:1.00] 975 ; GENERIC-NEXT: vpshlw %xmm0, (%rdi), %xmm0 # sched: [7:1.00] 976 ; GENERIC-NEXT: #NO_APP 977 ; GENERIC-NEXT: retq # sched: [1:1.00] 978 ; 979 ; BDVER-LABEL: test_vpshl: 980 ; BDVER: # %bb.0: 981 ; BDVER-NEXT: #APP 982 ; BDVER-NEXT: vpshlb %xmm1, %xmm0, %xmm0 983 ; BDVER-NEXT: vpshld %xmm1, %xmm0, %xmm0 984 ; BDVER-NEXT: vpshlq %xmm1, %xmm0, %xmm0 985 ; BDVER-NEXT: vpshlw %xmm1, %xmm0, %xmm0 986 ; BDVER-NEXT: vpshlb (%rdi), %xmm0, %xmm0 987 ; BDVER-NEXT: vpshld (%rdi), %xmm0, %xmm0 988 ; BDVER-NEXT: vpshlq (%rdi), %xmm0, %xmm0 989 ; BDVER-NEXT: vpshlw (%rdi), %xmm0, %xmm0 990 ; BDVER-NEXT: vpshlb %xmm0, (%rdi), %xmm0 991 ; BDVER-NEXT: vpshld %xmm0, (%rdi), %xmm0 992 ; BDVER-NEXT: vpshlq %xmm0, (%rdi), %xmm0 993 ; BDVER-NEXT: vpshlw %xmm0, (%rdi), %xmm0 994 ; BDVER-NEXT: #NO_APP 995 ; BDVER-NEXT: retq 996 call void asm sideeffect "vpshlb $1, $0, $0 \0A\09 vpshld $1, $0, $0 \0A\09 vpshlq $1, $0, $0 \0A\09 vpshlw $1, $0, $0 \0A\09 vpshlb $2, $0, $0 \0A\09 vpshld $2, $0, $0 \0A\09 vpshlq $2, $0, $0 \0A\09 vpshlw $2, $0, $0 \0A\09 vpshlb $0, $2, $0 \0A\09 vpshld $0, $2, $0 \0A\09 vpshlq $0, $2, $0 \0A\09 vpshlw $0, $2, $0", "x,x,*m"(<2 x i64> %a0, <2 x i64> %a1, <2 x i64> *%a2) 997 ret void 998 } 999