llvm.org GIT mirror llvm / 01109e8
[X86][AVX512] Add mask/maskz writemask support to subvector broadcast shuffle decode comments git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@284821 91177308-0d34-0410-b5e6-96231b3b80d8 Simon Pilgrim 3 years ago
3 changed file(s) with 48 addition(s) and 8 deletion(s). Raw diff Collapse all Expand all
276276 CASE_MASKZ_VSHUF(64X2, r)
277277 CASE_MASKZ_VSHUF(32X4, m)
278278 CASE_MASKZ_VSHUF(32X4, r)
279 CASE_MASKZ_INS_COMMON(BROADCASTF64X2, Z128, rm)
280 CASE_MASKZ_INS_COMMON(BROADCASTI64X2, Z128, rm)
281 CASE_MASKZ_INS_COMMON(BROADCASTF64X2, , rm)
282 CASE_MASKZ_INS_COMMON(BROADCASTI64X2, , rm)
283 CASE_MASKZ_INS_COMMON(BROADCASTF64X4, , rm)
284 CASE_MASKZ_INS_COMMON(BROADCASTI64X4, , rm)
285 CASE_MASKZ_INS_COMMON(BROADCASTF32X4, Z256, rm)
286 CASE_MASKZ_INS_COMMON(BROADCASTI32X4, Z256, rm)
287 CASE_MASKZ_INS_COMMON(BROADCASTF32X4, , rm)
288 CASE_MASKZ_INS_COMMON(BROADCASTI32X4, , rm)
289 CASE_MASKZ_INS_COMMON(BROADCASTF32X8, , rm)
290 CASE_MASKZ_INS_COMMON(BROADCASTI32X8, , rm)
291 CASE_MASKZ_INS_COMMON(BROADCASTF32X2, Z256, r)
292 CASE_MASKZ_INS_COMMON(BROADCASTI32X2, Z256, r)
293 CASE_MASKZ_INS_COMMON(BROADCASTF32X2, Z256, m)
294 CASE_MASKZ_INS_COMMON(BROADCASTI32X2, Z256, m)
295 CASE_MASKZ_INS_COMMON(BROADCASTF32X2, Z, r)
296 CASE_MASKZ_INS_COMMON(BROADCASTI32X2, Z, r)
297 CASE_MASKZ_INS_COMMON(BROADCASTF32X2, Z, m)
298 CASE_MASKZ_INS_COMMON(BROADCASTI32X2, Z, m)
279299 MaskWithZero = true;
280300 MaskRegName = getRegName(MI->getOperand(1).getReg());
281301 break;
341361 CASE_MASK_VSHUF(64X2, r)
342362 CASE_MASK_VSHUF(32X4, m)
343363 CASE_MASK_VSHUF(32X4, r)
364 CASE_MASK_INS_COMMON(BROADCASTF64X2, Z128, rm)
365 CASE_MASK_INS_COMMON(BROADCASTI64X2, Z128, rm)
366 CASE_MASK_INS_COMMON(BROADCASTF64X2, , rm)
367 CASE_MASK_INS_COMMON(BROADCASTI64X2, , rm)
368 CASE_MASK_INS_COMMON(BROADCASTF64X4, , rm)
369 CASE_MASK_INS_COMMON(BROADCASTI64X4, , rm)
370 CASE_MASK_INS_COMMON(BROADCASTF32X4, Z256, rm)
371 CASE_MASK_INS_COMMON(BROADCASTI32X4, Z256, rm)
372 CASE_MASK_INS_COMMON(BROADCASTF32X4, , rm)
373 CASE_MASK_INS_COMMON(BROADCASTI32X4, , rm)
374 CASE_MASK_INS_COMMON(BROADCASTF32X8, , rm)
375 CASE_MASK_INS_COMMON(BROADCASTI32X8, , rm)
376 CASE_MASK_INS_COMMON(BROADCASTF32X2, Z256, r)
377 CASE_MASK_INS_COMMON(BROADCASTI32X2, Z256, r)
378 CASE_MASK_INS_COMMON(BROADCASTF32X2, Z256, m)
379 CASE_MASK_INS_COMMON(BROADCASTI32X2, Z256, m)
380 CASE_MASK_INS_COMMON(BROADCASTF32X2, Z, r)
381 CASE_MASK_INS_COMMON(BROADCASTI32X2, Z, r)
382 CASE_MASK_INS_COMMON(BROADCASTF32X2, Z, m)
383 CASE_MASK_INS_COMMON(BROADCASTI32X2, Z, m)
344384 MaskRegName = getRegName(MI->getOperand(2).getReg());
345385 break;
346386 }
531531 ; CHECK-LABEL: test_int_x86_avx512_mask_broadcastf32x2_512:
532532 ; CHECK: ## BB#0:
533533 ; CHECK-NEXT: kmovw %edi, %k1
534 ; CHECK-NEXT: vbroadcastf32x2 {{.*#+}} zmm1 = xmm0[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1]
535 ; CHECK-NEXT: vbroadcastf32x2 {{.*#+}} zmm2 = xmm0[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1]
534 ; CHECK-NEXT: vbroadcastf32x2 {{.*#+}} zmm1 {%k1} = xmm0[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1]
535 ; CHECK-NEXT: vbroadcastf32x2 {{.*#+}} zmm2 {%k1} {z} = xmm0[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1]
536536 ; CHECK-NEXT: vbroadcastf32x2 {{.*#+}} zmm0 = xmm0[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1]
537537 ; CHECK-NEXT: vaddps %zmm2, %zmm1, %zmm1
538538 ; CHECK-NEXT: vaddps %zmm0, %zmm1, %zmm0
551551 ; CHECK-LABEL: test_int_x86_avx512_mask_broadcasti32x2_512:
552552 ; CHECK: ## BB#0:
553553 ; CHECK-NEXT: kmovw %edi, %k1
554 ; CHECK-NEXT: vbroadcasti32x2 {{.*#+}} zmm1 = xmm0[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1]
555 ; CHECK-NEXT: vbroadcasti32x2 {{.*#+}} zmm2 = xmm0[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1]
554 ; CHECK-NEXT: vbroadcasti32x2 {{.*#+}} zmm1 {%k1} = xmm0[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1]
555 ; CHECK-NEXT: vbroadcasti32x2 {{.*#+}} zmm2 {%k1} {z} = xmm0[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1]
556556 ; CHECK-NEXT: vbroadcasti32x2 {{.*#+}} zmm0 = xmm0[0,1,0,1,0,1,0,1,0,1,0,1,0,1,0,1]
557557 ; CHECK-NEXT: vpaddd %zmm2, %zmm1, %zmm1
558558 ; CHECK-NEXT: vpaddd %zmm0, %zmm1, %zmm0
651651 ; CHECK: ## BB#0:
652652 ; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
653653 ; CHECK-NEXT: vbroadcastf32x2 %xmm0, %ymm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x19,0xc8]
654 ; CHECK-NEXT: ## ymm1 = xmm0[0,1,0,1,0,1,0,1]
654 ; CHECK-NEXT: ## ymm1 {%k1} = xmm0[0,1,0,1,0,1,0,1]
655655 ; CHECK-NEXT: vbroadcastf32x2 %xmm0, %ymm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xa9,0x19,0xd0]
656 ; CHECK-NEXT: ## ymm2 = xmm0[0,1,0,1,0,1,0,1]
656 ; CHECK-NEXT: ## ymm2 {%k1} {z} = xmm0[0,1,0,1,0,1,0,1]
657657 ; CHECK-NEXT: vbroadcastf32x2 %xmm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x19,0xc0]
658658 ; CHECK-NEXT: ## ymm0 = xmm0[0,1,0,1,0,1,0,1]
659659 ; CHECK-NEXT: vaddps %ymm2, %ymm1, %ymm1 ## encoding: [0x62,0xf1,0x74,0x28,0x58,0xca]
674674 ; CHECK: ## BB#0:
675675 ; CHECK-NEXT: kmovb %edi, %k1 ## encoding: [0xc5,0xf9,0x92,0xcf]
676676 ; CHECK-NEXT: vbroadcasti32x2 (%rsi), %ymm1 {%k1} ## encoding: [0x62,0xf2,0x7d,0x29,0x59,0x0e]
677 ; CHECK-NEXT: ## ymm1 = mem[0,1,0,1,0,1,0,1]
677 ; CHECK-NEXT: ## ymm1 {%k1} = mem[0,1,0,1,0,1,0,1]
678678 ; CHECK-NEXT: vbroadcasti32x2 %xmm0, %ymm2 {%k1} {z} ## encoding: [0x62,0xf2,0x7d,0xa9,0x59,0xd0]
679 ; CHECK-NEXT: ## ymm2 = xmm0[0,1,0,1,0,1,0,1]
679 ; CHECK-NEXT: ## ymm2 {%k1} {z} = xmm0[0,1,0,1,0,1,0,1]
680680 ; CHECK-NEXT: vbroadcasti32x2 %xmm0, %ymm0 ## encoding: [0x62,0xf2,0x7d,0x28,0x59,0xc0]
681681 ; CHECK-NEXT: ## ymm0 = xmm0[0,1,0,1,0,1,0,1]
682682 ; CHECK-NEXT: vpaddd %ymm0, %ymm2, %ymm0 ## encoding: [0x62,0xf1,0x6d,0x28,0xfe,0xc0]