Lines Matching refs:Pat

333 def : Pat<(f32 (extractelt (v4f32 VR128:$src), (iPTR 0))),
335 def : Pat<(f64 (extractelt (v2f64 VR128:$src), (iPTR 0))),
340 def : Pat<(v4i32 (extract_subvector (v8i32 VR256:$src), (iPTR 0))),
342 def : Pat<(v4f32 (extract_subvector (v8f32 VR256:$src), (iPTR 0))),
345 def : Pat<(v2i64 (extract_subvector (v4i64 VR256:$src), (iPTR 0))),
347 def : Pat<(v2f64 (extract_subvector (v4f64 VR256:$src), (iPTR 0))),
350 def : Pat<(v8i16 (extract_subvector (v16i16 VR256:$src), (iPTR 0))),
352 def : Pat<(v16i8 (extract_subvector (v32i8 VR256:$src), (iPTR 0))),
358 def : Pat<(insert_subvector undef, (v2i64 VR128:$src), (iPTR 0)),
360 def : Pat<(insert_subvector undef, (v2f64 VR128:$src), (iPTR 0)),
362 def : Pat<(insert_subvector undef, (v4i32 VR128:$src), (iPTR 0)),
364 def : Pat<(insert_subvector undef, (v4f32 VR128:$src), (iPTR 0)),
366 def : Pat<(insert_subvector undef, (v8i16 VR128:$src), (iPTR 0)),
368 def : Pat<(insert_subvector undef, (v16i8 VR128:$src), (iPTR 0)),
373 def : Pat<(v4f32 (scalar_to_vector FR32:$src)),
375 def : Pat<(v8f32 (scalar_to_vector FR32:$src)),
378 def : Pat<(v2f64 (scalar_to_vector FR64:$src)),
380 def : Pat<(v4f64 (scalar_to_vector FR64:$src)),
386 def : Pat<(v2i64 (bitconvert (v4i32 VR128:$src))), (v2i64 VR128:$src)>;
387 def : Pat<(v2i64 (bitconvert (v8i16 VR128:$src))), (v2i64 VR128:$src)>;
388 def : Pat<(v2i64 (bitconvert (v16i8 VR128:$src))), (v2i64 VR128:$src)>;
389 def : Pat<(v2i64 (bitconvert (v2f64 VR128:$src))), (v2i64 VR128:$src)>;
390 def : Pat<(v2i64 (bitconvert (v4f32 VR128:$src))), (v2i64 VR128:$src)>;
391 def : Pat<(v4i32 (bitconvert (v2i64 VR128:$src))), (v4i32 VR128:$src)>;
392 def : Pat<(v4i32 (bitconvert (v8i16 VR128:$src))), (v4i32 VR128:$src)>;
393 def : Pat<(v4i32 (bitconvert (v16i8 VR128:$src))), (v4i32 VR128:$src)>;
394 def : Pat<(v4i32 (bitconvert (v2f64 VR128:$src))), (v4i32 VR128:$src)>;
395 def : Pat<(v4i32 (bitconvert (v4f32 VR128:$src))), (v4i32 VR128:$src)>;
396 def : Pat<(v8i16 (bitconvert (v2i64 VR128:$src))), (v8i16 VR128:$src)>;
397 def : Pat<(v8i16 (bitconvert (v4i32 VR128:$src))), (v8i16 VR128:$src)>;
398 def : Pat<(v8i16 (bitconvert (v16i8 VR128:$src))), (v8i16 VR128:$src)>;
399 def : Pat<(v8i16 (bitconvert (v2f64 VR128:$src))), (v8i16 VR128:$src)>;
400 def : Pat<(v8i16 (bitconvert (v4f32 VR128:$src))), (v8i16 VR128:$src)>;
401 def : Pat<(v16i8 (bitconvert (v2i64 VR128:$src))), (v16i8 VR128:$src)>;
402 def : Pat<(v16i8 (bitconvert (v4i32 VR128:$src))), (v16i8 VR128:$src)>;
403 def : Pat<(v16i8 (bitconvert (v8i16 VR128:$src))), (v16i8 VR128:$src)>;
404 def : Pat<(v16i8 (bitconvert (v2f64 VR128:$src))), (v16i8 VR128:$src)>;
405 def : Pat<(v16i8 (bitconvert (v4f32 VR128:$src))), (v16i8 VR128:$src)>;
406 def : Pat<(v4f32 (bitconvert (v2i64 VR128:$src))), (v4f32 VR128:$src)>;
407 def : Pat<(v4f32 (bitconvert (v4i32 VR128:$src))), (v4f32 VR128:$src)>;
408 def : Pat<(v4f32 (bitconvert (v8i16 VR128:$src))), (v4f32 VR128:$src)>;
409 def : Pat<(v4f32 (bitconvert (v16i8 VR128:$src))), (v4f32 VR128:$src)>;
410 def : Pat<(v4f32 (bitconvert (v2f64 VR128:$src))), (v4f32 VR128:$src)>;
411 def : Pat<(v2f64 (bitconvert (v2i64 VR128:$src))), (v2f64 VR128:$src)>;
412 def : Pat<(v2f64 (bitconvert (v4i32 VR128:$src))), (v2f64 VR128:$src)>;
413 def : Pat<(v2f64 (bitconvert (v8i16 VR128:$src))), (v2f64 VR128:$src)>;
414 def : Pat<(v2f64 (bitconvert (v16i8 VR128:$src))), (v2f64 VR128:$src)>;
415 def : Pat<(v2f64 (bitconvert (v4f32 VR128:$src))), (v2f64 VR128:$src)>;
416 def : Pat<(f128 (bitconvert (i128 FR128:$src))), (f128 FR128:$src)>;
417 def : Pat<(i128 (bitconvert (f128 FR128:$src))), (i128 FR128:$src)>;
423 def : Pat<(v4f64 (bitconvert (v8f32 VR256:$src))), (v4f64 VR256:$src)>;
424 def : Pat<(v4f64 (bitconvert (v8i32 VR256:$src))), (v4f64 VR256:$src)>;
425 def : Pat<(v4f64 (bitconvert (v4i64 VR256:$src))), (v4f64 VR256:$src)>;
426 def : Pat<(v4f64 (bitconvert (v16i16 VR256:$src))), (v4f64 VR256:$src)>;
427 def : Pat<(v4f64 (bitconvert (v32i8 VR256:$src))), (v4f64 VR256:$src)>;
428 def : Pat<(v8f32 (bitconvert (v8i32 VR256:$src))), (v8f32 VR256:$src)>;
429 def : Pat<(v8f32 (bitconvert (v4i64 VR256:$src))), (v8f32 VR256:$src)>;
430 def : Pat<(v8f32 (bitconvert (v4f64 VR256:$src))), (v8f32 VR256:$src)>;
431 def : Pat<(v8f32 (bitconvert (v32i8 VR256:$src))), (v8f32 VR256:$src)>;
432 def : Pat<(v8f32 (bitconvert (v16i16 VR256:$src))), (v8f32 VR256:$src)>;
433 def : Pat<(v4i64 (bitconvert (v8f32 VR256:$src))), (v4i64 VR256:$src)>;
434 def : Pat<(v4i64 (bitconvert (v8i32 VR256:$src))), (v4i64 VR256:$src)>;
435 def : Pat<(v4i64 (bitconvert (v4f64 VR256:$src))), (v4i64 VR256:$src)>;
436 def : Pat<(v4i64 (bitconvert (v32i8 VR256:$src))), (v4i64 VR256:$src)>;
437 def : Pat<(v4i64 (bitconvert (v16i16 VR256:$src))), (v4i64 VR256:$src)>;
438 def : Pat<(v32i8 (bitconvert (v4f64 VR256:$src))), (v32i8 VR256:$src)>;
439 def : Pat<(v32i8 (bitconvert (v4i64 VR256:$src))), (v32i8 VR256:$src)>;
440 def : Pat<(v32i8 (bitconvert (v8f32 VR256:$src))), (v32i8 VR256:$src)>;
441 def : Pat<(v32i8 (bitconvert (v8i32 VR256:$src))), (v32i8 VR256:$src)>;
442 def : Pat<(v32i8 (bitconvert (v16i16 VR256:$src))), (v32i8 VR256:$src)>;
443 def : Pat<(v8i32 (bitconvert (v32i8 VR256:$src))), (v8i32 VR256:$src)>;
444 def : Pat<(v8i32 (bitconvert (v16i16 VR256:$src))), (v8i32 VR256:$src)>;
445 def : Pat<(v8i32 (bitconvert (v8f32 VR256:$src))), (v8i32 VR256:$src)>;
446 def : Pat<(v8i32 (bitconvert (v4i64 VR256:$src))), (v8i32 VR256:$src)>;
447 def : Pat<(v8i32 (bitconvert (v4f64 VR256:$src))), (v8i32 VR256:$src)>;
448 def : Pat<(v16i16 (bitconvert (v8f32 VR256:$src))), (v16i16 VR256:$src)>;
449 def : Pat<(v16i16 (bitconvert (v8i32 VR256:$src))), (v16i16 VR256:$src)>;
450 def : Pat<(v16i16 (bitconvert (v4i64 VR256:$src))), (v16i16 VR256:$src)>;
451 def : Pat<(v16i16 (bitconvert (v4f64 VR256:$src))), (v16i16 VR256:$src)>;
452 def : Pat<(v16i16 (bitconvert (v32i8 VR256:$src))), (v16i16 VR256:$src)>;
480 def : Pat<(v2f64 immAllZerosV), (V_SET0)>;
481 def : Pat<(v4i32 immAllZerosV), (V_SET0)>;
482 def : Pat<(v2i64 immAllZerosV), (V_SET0)>;
483 def : Pat<(v8i16 immAllZerosV), (V_SET0)>;
484 def : Pat<(v16i8 immAllZerosV), (V_SET0)>;
498 def : Pat<(v4f64 immAllZerosV), (AVX_SET0)>;
501 def : Pat<(v4i64 immAllZerosV), (AVX_SET0)>;
502 def : Pat<(v8i32 immAllZerosV), (AVX_SET0)>;
503 def : Pat<(v16i16 immAllZerosV), (AVX_SET0)>;
504 def : Pat<(v32i8 immAllZerosV), (AVX_SET0)>;
510 def : Pat<(v32i8 immAllZerosV), (SUBREG_TO_REG (i8 0), (V_SET0), sub_xmm)>;
511 def : Pat<(bc_v32i8 (v8f32 immAllZerosV)),
514 def : Pat<(v16i16 immAllZerosV), (SUBREG_TO_REG (i16 0), (V_SET0), sub_xmm)>;
515 def : Pat<(bc_v16i16 (v8f32 immAllZerosV)),
518 def : Pat<(v8i32 immAllZerosV), (SUBREG_TO_REG (i32 0), (V_SET0), sub_xmm)>;
519 def : Pat<(bc_v8i32 (v8f32 immAllZerosV)),
522 def : Pat<(v4i64 immAllZerosV), (SUBREG_TO_REG (i64 0), (V_SET0), sub_xmm)>;
523 def : Pat<(bc_v4i64 (v8f32 immAllZerosV)),
624 def : Pat<(v4f32 (X86vzmovl (v4f32 (scalar_to_vector (loadf32 addr:$src))))),
626 def : Pat<(v4f32 (scalar_to_vector (loadf32 addr:$src))),
628 def : Pat<(v4f32 (X86vzmovl (loadv4f32 addr:$src))),
633 def : Pat<(v2f64 (X86vzmovl (v2f64 (scalar_to_vector (loadf64 addr:$src))))),
635 def : Pat<(v2f64 (scalar_to_vector (loadf64 addr:$src))),
637 def : Pat<(v2f64 (X86vzmovl (loadv2f64 addr:$src))),
639 def : Pat<(v2f64 (X86vzmovl (bc_v2f64 (loadv4f32 addr:$src)))),
641 def : Pat<(v2f64 (X86vzload addr:$src)),
646 def : Pat<(v8f32 (X86vzmovl (insert_subvector undef,
649 def : Pat<(v4f64 (X86vzmovl (insert_subvector undef,
655 def : Pat<(store (f32 (extractelt (v4f32 VR128:$src), (iPTR 0))),
658 def : Pat<(store (f64 (extractelt (v2f64 VR128:$src), (iPTR 0))),
663 def : Pat<(v4i32 (X86Movss VR128:$src1, VR128:$src2)),
666 def : Pat<(v4f32 (X86Movss VR128:$src1, VR128:$src2)),
671 def : Pat<(v8i32 (X86Movss VR256:$src1, VR256:$src2)),
676 def : Pat<(v8f32 (X86Movss VR256:$src1, VR256:$src2)),
683 def : Pat<(v2i64 (X86Movsd VR128:$src1, VR128:$src2)),
685 def : Pat<(v2f64 (X86Movsd VR128:$src1, VR128:$src2)),
687 def : Pat<(v4f32 (X86Movsd VR128:$src1, VR128:$src2)),
689 def : Pat<(v4i32 (X86Movsd VR128:$src1, VR128:$src2)),
693 def : Pat<(v4i64 (X86Movsd VR256:$src1, VR256:$src2)),
698 def : Pat<(v4f64 (X86Movsd VR256:$src1, VR256:$src2)),
708 def : Pat<(v2f64 (X86Movlpd VR128:$src1, VR128:$src2)),
710 def : Pat<(v2i64 (X86Movlpd VR128:$src1, VR128:$src2)),
712 def : Pat<(v4f32 (X86Movlps VR128:$src1, VR128:$src2)),
714 def : Pat<(v4i32 (X86Movlps VR128:$src1, VR128:$src2)),
722 def : Pat<(v4f32 (X86vzmovl (v4f32 (scalar_to_vector FR32:$src)))),
724 def : Pat<(v4f32 (X86vzmovl (v4f32 VR128:$src))),
726 def : Pat<(v4i32 (X86vzmovl (v4i32 VR128:$src))),
732 def : Pat<(v4f32 (X86vzmovl (v4f32 (scalar_to_vector (loadf32 addr:$src))))),
734 def : Pat<(v4f32 (scalar_to_vector (loadf32 addr:$src))),
736 def : Pat<(v4f32 (X86vzmovl (loadv4f32 addr:$src))),
741 def : Pat<(store (f32 (extractelt (v4f32 VR128:$src), (iPTR 0))),
746 def : Pat<(v4i32 (X86Movss VR128:$src1, VR128:$src2)),
748 def : Pat<(v4f32 (X86Movss VR128:$src1, VR128:$src2)),
756 def : Pat<(v2f64 (X86vzmovl (v2f64 (scalar_to_vector FR64:$src)))),
762 def : Pat<(v2f64 (X86vzmovl (v2f64 (scalar_to_vector (loadf64 addr:$src))))),
764 def : Pat<(v2f64 (scalar_to_vector (loadf64 addr:$src))),
766 def : Pat<(v2f64 (X86vzmovl (loadv2f64 addr:$src))),
768 def : Pat<(v2f64 (X86vzmovl (bc_v2f64 (loadv4f32 addr:$src)))),
770 def : Pat<(v2f64 (X86vzload addr:$src)),
775 def : Pat<(store (f64 (extractelt (v2f64 VR128:$src), (iPTR 0))),
780 def : Pat<(v2i64 (X86Movsd VR128:$src1, VR128:$src2)),
782 def : Pat<(v2f64 (X86Movsd VR128:$src1, VR128:$src2)),
784 def : Pat<(v4f32 (X86Movsd VR128:$src1, VR128:$src2)),
786 def : Pat<(v4i32 (X86Movsd VR128:$src1, VR128:$src2)),
793 def : Pat<(v2f64 (X86Movlpd VR128:$src1, VR128:$src2)),
795 def : Pat<(v2i64 (X86Movlpd VR128:$src1, VR128:$src2)),
797 def : Pat<(v4f32 (X86Movlps VR128:$src1, VR128:$src2)),
799 def : Pat<(v4i32 (X86Movlps VR128:$src1, VR128:$src2)),
940 def : Pat<(int_x86_avx_storeu_ps_256 addr:$dst, VR256:$src),
942 def : Pat<(int_x86_avx_storeu_pd_256 addr:$dst, VR256:$src),
982 def : Pat<(int_x86_sse_storeu_ps addr:$dst, VR128:$src),
984 def : Pat<(int_x86_sse2_storeu_pd addr:$dst, VR128:$src),
989 def : Pat<(int_x86_sse_storeu_ps addr:$dst, VR128:$src),
992 def : Pat<(int_x86_sse2_storeu_pd addr:$dst, VR128:$src),
998 def : Pat<(alignedloadv2i64 addr:$src),
1000 def : Pat<(loadv2i64 addr:$src),
1003 def : Pat<(alignedstore (v2i64 VR128:$src), addr:$dst),
1005 def : Pat<(alignedstore (v4i32 VR128:$src), addr:$dst),
1007 def : Pat<(alignedstore (v8i16 VR128:$src), addr:$dst),
1009 def : Pat<(alignedstore (v16i8 VR128:$src), addr:$dst),
1011 def : Pat<(store (v2i64 VR128:$src), addr:$dst),
1013 def : Pat<(store (v4i32 VR128:$src), addr:$dst),
1015 def : Pat<(store (v8i16 VR128:$src), addr:$dst),
1017 def : Pat<(store (v16i8 VR128:$src), addr:$dst),
1021 def : Pat<(alignedloadv4i64 addr:$src),
1023 def : Pat<(loadv4i64 addr:$src),
1025 def : Pat<(alignedstore256 (v4i64 VR256:$src), addr:$dst),
1027 def : Pat<(alignedstore256 (v8i32 VR256:$src), addr:$dst),
1029 def : Pat<(alignedstore256 (v16i16 VR256:$src), addr:$dst),
1031 def : Pat<(alignedstore256 (v32i8 VR256:$src), addr:$dst),
1033 def : Pat<(store (v4i64 VR256:$src), addr:$dst),
1035 def : Pat<(store (v8i32 VR256:$src), addr:$dst),
1037 def : Pat<(store (v16i16 VR256:$src), addr:$dst),
1039 def : Pat<(store (v32i8 VR256:$src), addr:$dst),
1044 def : Pat<(alignedstore (v2f64 (extract_subvector
1047 def : Pat<(alignedstore (v4f32 (extract_subvector
1050 def : Pat<(alignedstore (v2i64 (extract_subvector
1053 def : Pat<(alignedstore (v4i32 (extract_subvector
1056 def : Pat<(alignedstore (v8i16 (extract_subvector
1059 def : Pat<(alignedstore (v16i8 (extract_subvector
1063 def : Pat<(store (v2f64 (extract_subvector
1066 def : Pat<(store (v4f32 (extract_subvector
1069 def : Pat<(store (v2i64 (extract_subvector
1072 def : Pat<(store (v4i32 (extract_subvector
1075 def : Pat<(store (v8i16 (extract_subvector
1078 def : Pat<(store (v16i8 (extract_subvector
1087 def : Pat<(alignedloadv2i64 addr:$src),
1089 def : Pat<(loadv2i64 addr:$src),
1092 def : Pat<(alignedstore (v2i64 VR128:$src), addr:$dst),
1094 def : Pat<(alignedstore (v4i32 VR128:$src), addr:$dst),
1096 def : Pat<(alignedstore (v8i16 VR128:$src), addr:$dst),
1098 def : Pat<(alignedstore (v16i8 VR128:$src), addr:$dst),
1100 def : Pat<(store (v2i64 VR128:$src), addr:$dst),
1102 def : Pat<(store (v4i32 VR128:$src), addr:$dst),
1104 def : Pat<(store (v8i16 VR128:$src), addr:$dst),
1106 def : Pat<(store (v16i8 VR128:$src), addr:$dst),
1204 def : Pat<(v4f32 (X86Movlps VR128:$src1, (load addr:$src2))),
1206 def : Pat<(v4i32 (X86Movlps VR128:$src1, (load addr:$src2))),
1210 def : Pat<(v2f64 (X86Movlpd VR128:$src1, (load addr:$src2))),
1212 def : Pat<(v2i64 (X86Movlpd VR128:$src1, (load addr:$src2))),
1214 def : Pat<(v2f64 (X86Movsd VR128:$src1,
1219 def : Pat<(store (v4f32 (X86Movlps (load addr:$src1), VR128:$src2)),
1222 def : Pat<(store (v4i32 (X86Movlps
1225 def : Pat<(store (v2f64 (X86Movlpd (load addr:$src1), VR128:$src2)),
1228 def : Pat<(store (v2i64 (X86Movlpd (load addr:$src1), VR128:$src2)),
1235 def : Pat<(store (i64 (extractelt (bc_v2i64 (v4f32 VR128:$src2)),
1240 def : Pat<(v4f32 (X86Movlps VR128:$src1, (load addr:$src2))),
1242 def : Pat<(v4i32 (X86Movlps VR128:$src1, (load addr:$src2))),
1244 def : Pat<(X86Movlps VR128:$src1,
1249 def : Pat<(store (v4f32 (X86Movlps (load addr:$src1), VR128:$src2)),
1252 def : Pat<(store (v4i32 (X86Movlps
1260 def : Pat<(v2f64 (X86Movlpd VR128:$src1, (load addr:$src2))),
1262 def : Pat<(v2i64 (X86Movlpd VR128:$src1, (load addr:$src2))),
1264 def : Pat<(v2f64 (X86Movsd VR128:$src1,
1269 def : Pat<(store (v2f64 (X86Movlpd (load addr:$src1), VR128:$src2)),
1272 def : Pat<(store (v2i64 (X86Movlpd (load addr:$src1), VR128:$src2)),
1317 def : Pat<(X86Movlhps VR128:$src1,
1320 def : Pat<(X86Movlhps VR128:$src1,
1330 def : Pat<(v2f64 (X86Unpckl VR128:$src1,
1335 def : Pat<(v2f64 (X86Unpckl VR128:$src1,
1339 def : Pat<(store (f64 (extractelt
1347 def : Pat<(X86Movlhps VR128:$src1,
1350 def : Pat<(X86Movlhps VR128:$src1,
1362 def : Pat<(v2f64 (X86Unpckl VR128:$src1,
1367 def : Pat<(v2f64 (X86Unpckl VR128:$src1,
1371 def : Pat<(store (f64 (extractelt
1414 def : Pat<(v4i32 (X86Movlhps VR128:$src1, VR128:$src2)),
1416 def : Pat<(v2i64 (X86Movlhps VR128:$src1, VR128:$src2)),
1420 def : Pat<(v4i32 (X86Movhlps VR128:$src1, VR128:$src2)),
1426 def : Pat<(v4i32 (X86Movlhps VR128:$src1, VR128:$src2)),
1428 def : Pat<(v2i64 (X86Movlhps VR128:$src1, VR128:$src2)),
1432 def : Pat<(v4i32 (X86Movhlps VR128:$src1, VR128:$src2)),
1560 def : Pat<(f32 (sint_to_fp (loadi32 addr:$src))),
1562 def : Pat<(f32 (sint_to_fp (loadi64 addr:$src))),
1564 def : Pat<(f64 (sint_to_fp (loadi32 addr:$src))),
1566 def : Pat<(f64 (sint_to_fp (loadi64 addr:$src))),
1569 def : Pat<(f32 (sint_to_fp GR32:$src)),
1571 def : Pat<(f32 (sint_to_fp GR64:$src)),
1573 def : Pat<(f64 (sint_to_fp GR32:$src)),
1575 def : Pat<(f64 (sint_to_fp GR64:$src)),
1825 def : Pat<(f32 (fround FR64:$src)), (VCVTSD2SSrr FR64:$src, FR64:$src)>,
1891 def : Pat<(f64 (fextend FR32:$src)),
1893 def : Pat<(fextend (loadf32 addr:$src)),
1896 def : Pat<(extloadf32 addr:$src),
1899 def : Pat<(extloadf32 addr:$src),
1919 def : Pat<(fextend (loadf32 addr:$src)),
1921 def : Pat<(extloadf32 addr:$src),
2067 def : Pat<(int_x86_sse2_cvtdq2ps VR128:$src),
2069 def : Pat<(int_x86_sse2_cvtdq2ps (bc_v4i32 (loadv2i64 addr:$src))),
2074 def : Pat<(v4f32 (sint_to_fp (v4i32 VR128:$src))),
2076 def : Pat<(v4f32 (sint_to_fp (bc_v4i32 (loadv2i64 addr:$src)))),
2079 def : Pat<(v4i32 (fp_to_sint (v4f32 VR128:$src))),
2081 def : Pat<(v4i32 (fp_to_sint (loadv4f32 addr:$src))),
2084 def : Pat<(v8f32 (sint_to_fp (v8i32 VR256:$src))),
2086 def : Pat<(v8f32 (sint_to_fp (bc_v8i32 (loadv4i64 addr:$src)))),
2089 def : Pat<(v8i32 (fp_to_sint (v8f32 VR256:$src))),
2091 def : Pat<(v8i32 (fp_to_sint (loadv8f32 addr:$src))),
2096 def : Pat<(v4f32 (sint_to_fp (v4i32 VR128:$src))),
2098 def : Pat<(v4f32 (sint_to_fp (bc_v4i32 (memopv2i64 addr:$src)))),
2101 def : Pat<(int_x86_sse2_cvtdq2ps VR128:$src),
2103 def : Pat<(int_x86_sse2_cvtdq2ps (bc_v4i32 (memopv2i64 addr:$src))),
2106 def : Pat<(v4i32 (fp_to_sint (v4f32 VR128:$src))),
2108 def : Pat<(v4i32 (fp_to_sint (memopv4f32 addr:$src))),
2146 def : Pat<(v4i32 (fp_to_sint (v4f64 VR256:$src))),
2148 def : Pat<(v4i32 (fp_to_sint (loadv4f64 addr:$src))),
2232 def : Pat<(v2f64 (X86cvtdq2pd (v4i32 VR128:$src))),
2234 def : Pat<(v2f64 (X86cvtdq2pd (bc_v4i32 (loadv2i64 addr:$src)))),
2237 def : Pat<(v4f64 (sint_to_fp (v4i32 VR128:$src))),
2239 def : Pat<(v4f64 (sint_to_fp (bc_v4i32 (loadv2i64 addr:$src)))),
2245 def : Pat<(v2f64 (X86cvtdq2pd (v4i32 VR128:$src))),
2247 def : Pat<(v2f64 (X86cvtdq2pd (bc_v4i32 (loadv2i64 addr:$src)))),
2298 def : Pat<(int_x86_avx_cvtdq2_ps_256 VR256:$src),
2300 def : Pat<(int_x86_avx_cvtdq2_ps_256 (bitconvert (loadv4i64 addr:$src))),
2306 def : Pat<(v4f32 (X86vfpround (v2f64 VR128:$src))),
2308 def : Pat<(v4f32 (X86vfpround (loadv2f64 addr:$src))),
2310 def : Pat<(v4f32 (fround (v4f64 VR256:$src))),
2312 def : Pat<(v4f32 (fround (loadv4f64 addr:$src))),
2315 def : Pat<(v2f64 (X86vfpext (v4f32 VR128:$src))),
2317 def : Pat<(v4f64 (fextend (v4f32 VR128:$src))),
2319 def : Pat<(v4f64 (extloadv4f32 addr:$src)),
2325 def : Pat<(v4f32 (X86vfpround (v2f64 VR128:$src))),
2327 def : Pat<(v4f32 (X86vfpround (memopv2f64 addr:$src))),
2330 def : Pat<(v2f64 (X86vfpext (v4f32 VR128:$src))),
2550 def : Pat<(v4i32 (X86cmpp (v4f32 VR128:$src1), VR128:$src2, imm:$cc)),
2552 def : Pat<(v4i32 (X86cmpp (v4f32 VR128:$src1), (loadv4f32 addr:$src2), imm:$cc)),
2554 def : Pat<(v2i64 (X86cmpp (v2f64 VR128:$src1), VR128:$src2, imm:$cc)),
2556 def : Pat<(v2i64 (X86cmpp (v2f64 VR128:$src1), (loadv2f64 addr:$src2), imm:$cc)),
2559 def : Pat<(v8i32 (X86cmpp (v8f32 VR256:$src1), VR256:$src2, imm:$cc)),
2561 def : Pat<(v8i32 (X86cmpp (v8f32 VR256:$src1), (loadv8f32 addr:$src2), imm:$cc)),
2563 def : Pat<(v4i64 (X86cmpp (v4f64 VR256:$src1), VR256:$src2, imm:$cc)),
2565 def : Pat<(v4i64 (X86cmpp (v4f64 VR256:$src1), (loadv4f64 addr:$src2), imm:$cc)),
2570 def : Pat<(v4i32 (X86cmpp (v4f32 VR128:$src1), VR128:$src2, imm:$cc)),
2572 def : Pat<(v4i32 (X86cmpp (v4f32 VR128:$src1), (memopv4f32 addr:$src2), imm:$cc)),
2577 def : Pat<(v2i64 (X86cmpp (v2f64 VR128:$src1), VR128:$src2, imm:$cc)),
2579 def : Pat<(v2i64 (X86cmpp (v2f64 VR128:$src1), (memopv2f64 addr:$src2), imm:$cc)),
2627 def : Pat<(v4i32 (X86Shufp VR128:$src1,
2630 def : Pat<(v4i32 (X86Shufp VR128:$src1, VR128:$src2, (i8 imm:$imm))),
2633 def : Pat<(v2i64 (X86Shufp VR128:$src1,
2636 def : Pat<(v2i64 (X86Shufp VR128:$src1, VR128:$src2, (i8 imm:$imm))),
2640 def : Pat<(v8i32 (X86Shufp VR256:$src1, VR256:$src2, (i8 imm:$imm))),
2642 def : Pat<(v8i32 (X86Shufp VR256:$src1,
2646 def : Pat<(v4i64 (X86Shufp VR256:$src1, VR256:$src2, (i8 imm:$imm))),
2648 def : Pat<(v4i64 (X86Shufp VR256:$src1,
2654 def : Pat<(v4i32 (X86Shufp VR128:$src1,
2657 def : Pat<(v4i32 (X86Shufp VR128:$src1, VR128:$src2, (i8 imm:$imm))),
2663 def : Pat<(v2i64 (X86Shufp VR128:$src1,
2666 def : Pat<(v2i64 (X86Shufp VR128:$src1, VR128:$src2, (i8 imm:$imm))),
2736 def : Pat<(v8i32 (X86Unpckl VR256:$src1, (bc_v8i32 (loadv4i64 addr:$src2)))),
2738 def : Pat<(v8i32 (X86Unpckl VR256:$src1, VR256:$src2)),
2740 def : Pat<(v8i32 (X86Unpckh VR256:$src1, (bc_v8i32 (loadv4i64 addr:$src2)))),
2742 def : Pat<(v8i32 (X86Unpckh VR256:$src1, VR256:$src2)),
2745 def : Pat<(v4i64 (X86Unpckl VR256:$src1, (loadv4i64 addr:$src2))),
2747 def : Pat<(v4i64 (X86Unpckl VR256:$src1, VR256:$src2)),
2749 def : Pat<(v4i64 (X86Unpckh VR256:$src1, (loadv4i64 addr:$src2))),
2751 def : Pat<(v4i64 (X86Unpckh VR256:$src1, VR256:$src2)),
2780 def : Pat<(i32 (X86fgetsign FR32:$src)),
2782 def : Pat<(i64 (X86fgetsign FR32:$src)),
2785 def : Pat<(i32 (X86fgetsign FR64:$src)),
2787 def : Pat<(i64 (X86fgetsign FR64:$src)),
2797 def : Pat<(i32 (X86fgetsign FR32:$src)),
2800 def : Pat<(i64 (X86fgetsign FR32:$src)),
2804 def : Pat<(i32 (X86fgetsign FR64:$src)),
2807 def : Pat<(i64 (X86fgetsign FR64:$src)),
3015 def : Pat<(bc_v8f32 (and VR256:$src1, (loadv4i64 addr:$src2))),
3017 def : Pat<(bc_v8f32 (or VR256:$src1, (loadv4i64 addr:$src2))),
3019 def : Pat<(bc_v8f32 (xor VR256:$src1, (loadv4i64 addr:$src2))),
3021 def : Pat<(bc_v8f32 (X86andnp VR256:$src1, (loadv4i64 addr:$src2))),
3182 def : Pat<(v4f32 (X86Movss (v4f32 VR128:$dst), (v4f32 (scalar_to_vector
3189 def : Pat<(v4f32 (X86Movss (v4f32 VR128:$dst),
3197 def : Pat<(v4f32 (X86Blendi (v4f32 VR128:$dst), (v4f32 (scalar_to_vector
3204 def : Pat<(v4f32 (X86Blendi (v4f32 VR128:$dst),
3214 def : Pat<(v4f32 (X86Blendi (v4f32 VR128:$dst), (v4f32 (scalar_to_vector
3221 def : Pat<(v4f32 (X86Movss (v4f32 VR128:$dst),
3226 def : Pat<(v4f32 (X86Blendi (v4f32 VR128:$dst),
3240 def : Pat<(v2f64 (X86Movsd (v2f64 VR128:$dst), (v2f64 (scalar_to_vector
3247 def : Pat<(v2f64 (X86Movsd (v2f64 VR128:$dst),
3255 def : Pat<(v2f64 (X86Blendi (v2f64 VR128:$dst), (v2f64 (scalar_to_vector
3262 def : Pat<(v2f64 (X86Blendi (v2f64 VR128:$dst),
3270 def : Pat<(v2f64 (X86Movsd (v2f64 VR128:$dst), (v2f64 (scalar_to_vector
3277 def : Pat<(v2f64 (X86Blendi (v2f64 VR128:$dst), (v2f64 (scalar_to_vector
3284 def : Pat<(v2f64 (X86Movsd (v2f64 VR128:$dst),
3289 def : Pat<(v2f64 (X86Blendi (v2f64 VR128:$dst),
3380 def : Pat<(vt (OpNode mem_cpat:$src)),
3385 def : Pat<(Intr VR128:$src),
3387 def : Pat<(Intr (load addr:$src)),
3390 def : Pat<(Intr mem_cpat:$src),
3424 def : Pat<(OpNode RC:$src), (!cast<Instruction>("V"#NAME#Suffix##r)
3427 def : Pat<(vt (OpNode mem_cpat:$src)),
3433 def : Pat<(Intr VR128:$src),
3437 def : Pat<(Intr mem_cpat:$src),
3442 def : Pat<(ScalarVT (OpNode (load addr:$src))),
3567 def : Pat<(VT (Move VT:$dst, (Intr VT:$src))),
3573 def : Pat<(VT (X86Blendi VT:$dst, (Intr VT:$src), (i8 1))),
3579 def : Pat<(VT (Move VT:$dst, (Intr VT:$src))),
3582 def : Pat<(VT (X86Blendi VT:$dst, (Intr VT:$src), (i8 1))),
3675 def : Pat<(alignednontemporalstore (v8i32 VR256:$src), addr:$dst),
3677 def : Pat<(alignednontemporalstore (v16i16 VR256:$src), addr:$dst),
3679 def : Pat<(alignednontemporalstore (v32i8 VR256:$src), addr:$dst),
3684 def : Pat<(alignednontemporalstore (v4i32 VR128:$src), addr:$dst),
3686 def : Pat<(alignednontemporalstore (v8i16 VR128:$src), addr:$dst),
3688 def : Pat<(alignednontemporalstore (v16i8 VR128:$src), addr:$dst),
3692 def : Pat<(alignednontemporalstore (v4i32 VR128:$src), addr:$dst),
3694 def : Pat<(alignednontemporalstore (v8i16 VR128:$src), addr:$dst),
3696 def : Pat<(alignednontemporalstore (v16i8 VR128:$src), addr:$dst),
3750 def : Pat<(X86SFence), (SFENCE)>;
3751 def : Pat<(X86LFence), (LFENCE)>;
3752 def : Pat<(X86MFence), (MFENCE)>;
3900 def : Pat<(int_x86_sse2_storeu_dq addr:$dst, VR128:$src),
3902 def : Pat<(int_x86_avx_storeu_dq_256 addr:$dst, VR256:$src),
3906 def : Pat<(int_x86_sse2_storeu_dq addr:$dst, VR128:$src),
4325 def : Pat<(v4f32 (X86PShufd (loadv4f32 addr:$src1), (i8 imm:$imm))),
4327 def : Pat<(v4f32 (X86PShufd VR128:$src1, (i8 imm:$imm))),
4332 def : Pat<(v4f32 (X86PShufd (memopv4f32 addr:$src1), (i8 imm:$imm))),
4334 def : Pat<(v4f32 (X86PShufd VR128:$src1, (i8 imm:$imm))),
4791 def : Pat<(v8i32 (X86Vinsert (v8i32 immAllZerosV), GR32:$src2, (iPTR 0))),
4794 def : Pat<(v4i64 (X86Vinsert (bc_v4i64 (v8i32 immAllZerosV)), GR64:$src2, (iPTR 0))),
4797 def : Pat<(v8i32 (X86Vinsert undef, GR32:$src2, (iPTR 0))),
4800 def : Pat<(v4i64 (X86Vinsert undef, GR64:$src2, (iPTR 0))),
4886 def : Pat<(v4i32 (X86vzmovl (v4i32 (scalar_to_vector GR32:$src)))),
4889 def : Pat<(v2i64 (X86vzmovl (v2i64 (scalar_to_vector GR64:$src)))),
4892 def : Pat<(v4i64 (X86vzmovl (insert_subvector undef,
4899 def : Pat<(v4i32 (X86vzmovl (v4i32 (scalar_to_vector (loadi32 addr:$src))))),
4901 def : Pat<(v4i32 (X86vzmovl (bc_v4i32 (loadv4f32 addr:$src)))),
4903 def : Pat<(v4i32 (X86vzmovl (bc_v4i32 (loadv2i64 addr:$src)))),
4905 def : Pat<(v8i32 (X86vzmovl (insert_subvector undef,
4910 def : Pat<(v8i32 (X86vzmovl (insert_subvector undef,
4917 def : Pat<(v4i32 (X86vzmovl (v4i32 (scalar_to_vector GR32:$src)))),
4920 def : Pat<(v2i64 (X86vzmovl (v2i64 (scalar_to_vector GR64:$src)))),
4924 def : Pat<(v4i32 (X86vzmovl (v4i32 (scalar_to_vector (loadi32 addr:$src))))),
4926 def : Pat<(v4i32 (X86vzmovl (bc_v4i32 (loadv4f32 addr:$src)))),
4928 def : Pat<(v4i32 (X86vzmovl (bc_v4i32 (loadv2i64 addr:$src)))),
4997 def : Pat<(int_x86_sse2_storel_dq addr:$dst, VR128:$src),
5000 def : Pat<(int_x86_sse2_storel_dq addr:$dst, VR128:$src),
5022 def : Pat<(v2i64 (X86vzmovl (bc_v2i64 (loadv4f32 addr:$src)))),
5024 def : Pat<(v2i64 (X86vzload addr:$src)),
5026 def : Pat<(v4i64 (X86vzmovl (insert_subvector undef,
5032 def : Pat<(v2i64 (X86vzmovl (bc_v2i64 (loadv4f32 addr:$src)))),
5034 def : Pat<(v2i64 (X86vzload addr:$src)), (MOVZQI2PQIrm addr:$src)>;
5038 def : Pat<(v4i64 (alignedX86vzload addr:$src)),
5040 def : Pat<(v4i64 (X86vzload addr:$src)),
5083 def : Pat<(v2f64 (X86vzmovl (v2f64 VR128:$src))),
5087 def : Pat<(v2f64 (X86vzmovl (v2f64 VR128:$src))),
5124 def : Pat<(v4i32 (X86Movshdup VR128:$src)),
5126 def : Pat<(v4i32 (X86Movshdup (bc_v4i32 (loadv2i64 addr:$src)))),
5128 def : Pat<(v4i32 (X86Movsldup VR128:$src)),
5130 def : Pat<(v4i32 (X86Movsldup (bc_v4i32 (loadv2i64 addr:$src)))),
5132 def : Pat<(v8i32 (X86Movshdup VR256:$src)),
5134 def : Pat<(v8i32 (X86Movshdup (bc_v8i32 (loadv4i64 addr:$src)))),
5136 def : Pat<(v8i32 (X86Movsldup VR256:$src)),
5138 def : Pat<(v8i32 (X86Movsldup (bc_v8i32 (loadv4i64 addr:$src)))),
5143 def : Pat<(v4i32 (X86Movshdup VR128:$src)),
5145 def : Pat<(v4i32 (X86Movshdup (bc_v4i32 (memopv2i64 addr:$src)))),
5147 def : Pat<(v4i32 (X86Movsldup VR128:$src)),
5149 def : Pat<(v4i32 (X86Movsldup (bc_v4i32 (memopv2i64 addr:$src)))),
5192 def : Pat<(X86Movddup (loadv2f64 addr:$src)),
5196 def : Pat<(X86Movddup (loadv4i64 addr:$src)),
5198 def : Pat<(X86Movddup (v4i64 VR256:$src)),
5203 def : Pat<(X86Movddup (bc_v2f64 (loadv4f32 addr:$src))),
5205 def : Pat<(X86Movddup (bc_v2f64 (loadv2i64 addr:$src))),
5207 def : Pat<(X86Movddup (bc_v2f64
5213 def : Pat<(v2f64 (X86VBroadcast (loadf64 addr:$src))),
5215 def : Pat<(v2i64 (X86VBroadcast (loadi64 addr:$src))),
5220 def : Pat<(X86Movddup (memopv2f64 addr:$src)),
5222 def : Pat<(X86Movddup (bc_v2f64 (memopv4f32 addr:$src))),
5224 def : Pat<(X86Movddup (bc_v2f64 (memopv2i64 addr:$src))),
5226 def : Pat<(X86Movddup (bc_v2f64
5299 def : Pat<(v4f32 (X86Addsub (v4f32 VR128:$lhs), (v4f32 VR128:$rhs))),
5301 def : Pat<(v4f32 (X86Addsub (v4f32 VR128:$lhs), (loadv4f32 addr:$rhs))),
5303 def : Pat<(v2f64 (X86Addsub (v2f64 VR128:$lhs), (v2f64 VR128:$rhs))),
5305 def : Pat<(v2f64 (X86Addsub (v2f64 VR128:$lhs), (loadv2f64 addr:$rhs))),
5308 def : Pat<(v8f32 (X86Addsub (v8f32 VR256:$lhs), (v8f32 VR256:$rhs))),
5310 def : Pat<(v8f32 (X86Addsub (v8f32 VR256:$lhs), (loadv8f32 addr:$rhs))),
5312 def : Pat<(v4f64 (X86Addsub (v4f64 VR256:$lhs), (v4f64 VR256:$rhs))),
5314 def : Pat<(v4f64 (X86Addsub (v4f64 VR256:$lhs), (loadv4f64 addr:$rhs))),
5319 def : Pat<(v4f32 (X86Addsub (v4f32 VR128:$lhs), (v4f32 VR128:$rhs))),
5321 def : Pat<(v4f32 (X86Addsub (v4f32 VR128:$lhs), (memopv4f32 addr:$rhs))),
5323 def : Pat<(v2f64 (X86Addsub (v2f64 VR128:$lhs), (v2f64 VR128:$rhs))),
5325 def : Pat<(v2f64 (X86Addsub (v2f64 VR128:$lhs), (memopv2f64 addr:$rhs))),
5466 def : Pat<(xor
5470 def : Pat<(xor
5474 def : Pat<(xor
5488 def : Pat<(xor
5492 def : Pat<(xor
5496 def : Pat<(xor
5510 def : Pat<(xor
5514 def : Pat<(xor
5518 def : Pat<(xor
5780 def : Pat<(v8i32 (X86PAlignr VR256:$src1, VR256:$src2, (i8 imm:$imm))),
5782 def : Pat<(v8f32 (X86PAlignr VR256:$src1, VR256:$src2, (i8 imm:$imm))),
5784 def : Pat<(v16i16 (X86PAlignr VR256:$src1, VR256:$src2, (i8 imm:$imm))),
5786 def : Pat<(v32i8 (X86PAlignr VR256:$src1, VR256:$src2, (i8 imm:$imm))),
5791 def : Pat<(v4i32 (X86PAlignr VR128:$src1, VR128:$src2, (i8 imm:$imm))),
5793 def : Pat<(v4f32 (X86PAlignr VR128:$src1, VR128:$src2, (i8 imm:$imm))),
5795 def : Pat<(v8i16 (X86PAlignr VR128:$src1, VR128:$src2, (i8 imm:$imm))),
5797 def : Pat<(v16i8 (X86PAlignr VR128:$src1, VR128:$src2, (i8 imm:$imm))),
5802 def : Pat<(v4i32 (X86PAlignr VR128:$src1, VR128:$src2, (i8 imm:$imm))),
5804 def : Pat<(v4f32 (X86PAlignr VR128:$src1, VR128:$src2, (i8 imm:$imm))),
5806 def : Pat<(v8i16 (X86PAlignr VR128:$src1, VR128:$src2, (i8 imm:$imm))),
5808 def : Pat<(v16i8 (X86PAlignr VR128:$src1, VR128:$src2, (i8 imm:$imm))),
5898 def : Pat<(v16i16 (ExtOp (v16i8 VR128:$src))),
5900 def : Pat<(v8i32 (ExtOp (v16i8 VR128:$src))),
5902 def : Pat<(v4i64 (ExtOp (v16i8 VR128:$src))),
5905 def : Pat<(v8i32 (ExtOp (v8i16 VR128:$src))),
5907 def : Pat<(v4i64 (ExtOp (v8i16 VR128:$src))),
5910 def : Pat<(v4i64 (ExtOp (v4i32 VR128:$src))),
5914 def : Pat<(v16i16 (ExtOp (v32i8 VR256:$src))),
5916 def : Pat<(v8i32 (ExtOp (v32i8 VR256:$src))),
5918 def : Pat<(v4i64 (ExtOp (v32i8 VR256:$src))),
5921 def : Pat<(v8i32 (ExtOp (v16i16 VR256:$src))),
5923 def : Pat<(v4i64 (ExtOp (v16i16 VR256:$src))),
5926 def : Pat<(v4i64 (ExtOp (v8i32 VR256:$src))),
5930 def : Pat<(v16i16 (!cast<PatFrag>(ExtTy#"extloadvi8") addr:$src)),
5932 def : Pat<(v8i32 (!cast<PatFrag>(ExtTy#"extloadvi8") addr:$src)),
5934 def : Pat<(v4i64 (!cast<PatFrag>(ExtTy#"extloadvi8") addr:$src)),
5937 def : Pat<(v8i32 (!cast<PatFrag>(ExtTy#"extloadvi16") addr:$src)),
5939 def : Pat<(v4i64 (!cast<PatFrag>(ExtTy#"extloadvi16") addr:$src)),
5942 def : Pat<(v4i64 (!cast<PatFrag>(ExtTy#"extloadvi32") addr:$src)),
5946 def : Pat<(v16i16 (ExtOp (bc_v16i8 (loadv2i64 addr:$src)))),
5948 def : Pat<(v16i16 (ExtOp (v16i8 (vzmovl_v2i64 addr:$src)))),
5950 def : Pat<(v16i16 (ExtOp (v16i8 (vzload_v2i64 addr:$src)))),
5952 def : Pat<(v16i16 (ExtOp (bc_v16i8 (loadv2i64 addr:$src)))),
5955 def : Pat<(v8i32 (ExtOp (bc_v16i8 (v2i64 (scalar_to_vector (loadi64 addr:$src)))))),
5957 def : Pat<(v8i32 (ExtOp (v16i8 (vzmovl_v2i64 addr:$src)))),
5959 def : Pat<(v8i32 (ExtOp (v16i8 (vzload_v2i64 addr:$src)))),
5961 def : Pat<(v8i32 (ExtOp (bc_v16i8 (loadv2i64 addr:$src)))),
5964 def : Pat<(v4i64 (ExtOp (bc_v16i8 (v4i32 (scalar_to_vector (loadi32 addr:$src)))))),
5966 def : Pat<(v4i64 (ExtOp (v16i8 (vzmovl_v4i32 addr:$src)))),
5968 def : Pat<(v4i64 (ExtOp (v16i8 (vzload_v2i64 addr:$src)))),
5970 def : Pat<(v4i64 (ExtOp (bc_v16i8 (loadv2i64 addr:$src)))),
5973 def : Pat<(v8i32 (ExtOp (bc_v8i16 (loadv2i64 addr:$src)))),
5975 def : Pat<(v8i32 (ExtOp (v8i16 (vzmovl_v2i64 addr:$src)))),
5977 def : Pat<(v8i32 (ExtOp (v8i16 (vzload_v2i64 addr:$src)))),
5979 def : Pat<(v8i32 (ExtOp (bc_v8i16 (loadv2i64 addr:$src)))),
5982 def : Pat<(v4i64 (ExtOp (bc_v8i16 (v2i64 (scalar_to_vector (loadi64 addr:$src)))))),
5984 def : Pat<(v4i64 (ExtOp (v8i16 (vzmovl_v2i64 addr:$src)))),
5986 def : Pat<(v4i64 (ExtOp (v8i16 (vzload_v2i64 addr:$src)))),
5988 def : Pat<(v4i64 (ExtOp (bc_v8i16 (loadv2i64 addr:$src)))),
5991 def : Pat<(v4i64 (ExtOp (bc_v4i32 (loadv2i64 addr:$src)))),
5993 def : Pat<(v4i64 (ExtOp (v4i32 (vzmovl_v2i64 addr:$src)))),
5995 def : Pat<(v4i64 (ExtOp (v4i32 (vzload_v2i64 addr:$src)))),
5997 def : Pat<(v4i64 (ExtOp (bc_v4i32 (loadv2i64 addr:$src)))),
6009 def : Pat<(v8i16 (ExtOp (v16i8 VR128:$src))),
6011 def : Pat<(v4i32 (ExtOp (v16i8 VR128:$src))),
6013 def : Pat<(v2i64 (ExtOp (v16i8 VR128:$src))),
6016 def : Pat<(v4i32 (ExtOp (v8i16 VR128:$src))),
6018 def : Pat<(v2i64 (ExtOp (v8i16 VR128:$src))),
6021 def : Pat<(v2i64 (ExtOp (v4i32 VR128:$src))),
6024 def : Pat<(v8i16 (!cast<PatFrag>(ExtTy#"extloadvi8") addr:$src)),
6026 def : Pat<(v4i32 (!cast<PatFrag>(ExtTy#"extloadvi8") addr:$src)),
6028 def : Pat<(v2i64 (!cast<PatFrag>(ExtTy#"extloadvi8") addr:$src)),
6031 def : Pat<(v4i32 (!cast<PatFrag>(ExtTy#"extloadvi16") addr:$src)),
6033 def : Pat<(v2i64 (!cast<PatFrag>(ExtTy#"extloadvi16") addr:$src)),
6036 def : Pat<(v2i64 (!cast<PatFrag>(ExtTy#"extloadvi32") addr:$src)),
6039 def : Pat<(v8i16 (ExtOp (bc_v16i8 (v2i64 (scalar_to_vector (loadi64 addr:$src)))))),
6041 def : Pat<(v8i16 (ExtOp (bc_v16i8 (v2f64 (scalar_to_vector (loadf64 addr:$src)))))),
6043 def : Pat<(v8i16 (ExtOp (v16i8 (vzmovl_v2i64 addr:$src)))),
6045 def : Pat<(v8i16 (ExtOp (v16i8 (vzload_v2i64 addr:$src)))),
6047 def : Pat<(v8i16 (ExtOp (bc_v16i8 (loadv2i64 addr:$src)))),
6050 def : Pat<(v4i32 (ExtOp (bc_v16i8 (v4i32 (scalar_to_vector (loadi32 addr:$src)))))),
6052 def : Pat<(v4i32 (ExtOp (v16i8 (vzmovl_v4i32 addr:$src)))),
6054 def : Pat<(v4i32 (ExtOp (v16i8 (vzload_v2i64 addr:$src)))),
6056 def : Pat<(v4i32 (ExtOp (bc_v16i8 (loadv2i64 addr:$src)))),
6059 def : Pat<(v2i64 (ExtOp (bc_v16i8 (v4i32 (scalar_to_vector (ExtLoad16 addr:$src)))))),
6061 def : Pat<(v2i64 (ExtOp (v16i8 (vzmovl_v4i32 addr:$src)))),
6063 def : Pat<(v2i64 (ExtOp (v16i8 (vzload_v2i64 addr:$src)))),
6065 def : Pat<(v2i64 (ExtOp (bc_v16i8 (loadv2i64 addr:$src)))),
6068 def : Pat<(v4i32 (ExtOp (bc_v8i16 (v2i64 (scalar_to_vector (loadi64 addr:$src)))))),
6070 def : Pat<(v4i32 (ExtOp (bc_v8i16 (v2f64 (scalar_to_vector (loadf64 addr:$src)))))),
6072 def : Pat<(v4i32 (ExtOp (v8i16 (vzmovl_v2i64 addr:$src)))),
6074 def : Pat<(v4i32 (ExtOp (v8i16 (vzload_v2i64 addr:$src)))),
6076 def : Pat<(v4i32 (ExtOp (bc_v8i16 (loadv2i64 addr:$src)))),
6079 def : Pat<(v2i64 (ExtOp (bc_v8i16 (v4i32 (scalar_to_vector (loadi32 addr:$src)))))),
6081 def : Pat<(v2i64 (ExtOp (v8i16 (vzmovl_v4i32 addr:$src)))),
6083 def : Pat<(v2i64 (ExtOp (v8i16 (vzload_v2i64 addr:$src)))),
6085 def : Pat<(v2i64 (ExtOp (bc_v8i16 (loadv2i64 addr:$src)))),
6088 def : Pat<(v2i64 (ExtOp (bc_v4i32 (v2i64 (scalar_to_vector (loadi64 addr:$src)))))),
6090 def : Pat<(v2i64 (ExtOp (bc_v4i32 (v2f64 (scalar_to_vector (loadf64 addr:$src)))))),
6092 def : Pat<(v2i64 (ExtOp (v4i32 (vzmovl_v2i64 addr:$src)))),
6094 def : Pat<(v2i64 (ExtOp (v4i32 (vzload_v2i64 addr:$src)))),
6096 def : Pat<(v2i64 (ExtOp (bc_v4i32 (loadv2i64 addr:$src)))),
6237 def : Pat<(store (f32 (bitconvert (extractelt (bc_v4i32 (v4f32 VR128:$src1)),
6242 def : Pat<(store (f32 (bitconvert (extractelt (bc_v4i32 (v4f32 VR128:$src1)),
6368 def : Pat<(v4f32 (X86insertps (v4f32 VR128:$src1), (X86PShufd (v4f32
6372 def : Pat<(v4f32 (X86insertps (v4f32 VR128:$src1), (X86PShufd
6380 def : Pat<(v4f32 (X86insertps (v4f32 VR128:$src1),
6383 def : Pat<(v4f32 (X86insertps (v4f32 VR128:$src1),
6530 def : Pat<(ffloor FR32:$src),
6532 def : Pat<(f64 (ffloor FR64:$src)),
6534 def : Pat<(f32 (fnearbyint FR32:$src)),
6536 def : Pat<(f64 (fnearbyint FR64:$src)),
6538 def : Pat<(f32 (fceil FR32:$src)),
6540 def : Pat<(f64 (fceil FR64:$src)),
6542 def : Pat<(f32 (frint FR32:$src)),
6544 def : Pat<(f64 (frint FR64:$src)),
6546 def : Pat<(f32 (ftrunc FR32:$src)),
6548 def : Pat<(f64 (ftrunc FR64:$src)),
6553 def : Pat<(v4f32 (ffloor VR128:$src)),
6555 def : Pat<(v4f32 (fnearbyint VR128:$src)),
6557 def : Pat<(v4f32 (fceil VR128:$src)),
6559 def : Pat<(v4f32 (frint VR128:$src)),
6561 def : Pat<(v4f32 (ftrunc VR128:$src)),
6564 def : Pat<(v2f64 (ffloor VR128:$src)),
6566 def : Pat<(v2f64 (fnearbyint VR128:$src)),
6568 def : Pat<(v2f64 (fceil VR128:$src)),
6570 def : Pat<(v2f64 (frint VR128:$src)),
6572 def : Pat<(v2f64 (ftrunc VR128:$src)),
6575 def : Pat<(v8f32 (ffloor VR256:$src)),
6577 def : Pat<(v8f32 (fnearbyint VR256:$src)),
6579 def : Pat<(v8f32 (fceil VR256:$src)),
6581 def : Pat<(v8f32 (frint VR256:$src)),
6583 def : Pat<(v8f32 (ftrunc VR256:$src)),
6586 def : Pat<(v4f64 (ffloor VR256:$src)),
6588 def : Pat<(v4f64 (fnearbyint VR256:$src)),
6590 def : Pat<(v4f64 (fceil VR256:$src)),
6592 def : Pat<(v4f64 (frint VR256:$src)),
6594 def : Pat<(v4f64 (ftrunc VR256:$src)),
6606 def : Pat<(ffloor FR32:$src),
6608 def : Pat<(f64 (ffloor FR64:$src)),
6610 def : Pat<(f32 (fnearbyint FR32:$src)),
6612 def : Pat<(f64 (fnearbyint FR64:$src)),
6614 def : Pat<(f32 (fceil FR32:$src)),
6616 def : Pat<(f64 (fceil FR64:$src)),
6618 def : Pat<(f32 (frint FR32:$src)),
6620 def : Pat<(f64 (frint FR64:$src)),
6622 def : Pat<(f32 (ftrunc FR32:$src)),
6624 def : Pat<(f64 (ftrunc FR64:$src)),
6627 def : Pat<(v4f32 (ffloor VR128:$src)),
6629 def : Pat<(v4f32 (fnearbyint VR128:$src)),
6631 def : Pat<(v4f32 (fceil VR128:$src)),
6633 def : Pat<(v4f32 (frint VR128:$src)),
6635 def : Pat<(v4f32 (ftrunc VR128:$src)),
6638 def : Pat<(v2f64 (ffloor VR128:$src)),
6640 def : Pat<(v2f64 (fnearbyint VR128:$src)),
6642 def : Pat<(v2f64 (fceil VR128:$src)),
6644 def : Pat<(v2f64 (frint VR128:$src)),
6646 def : Pat<(v2f64 (ftrunc VR128:$src)),
7123 def : Pat<(v16i8 (vselect (v16i8 VR128:$mask), (v16i8 VR128:$src1),
7126 def : Pat<(v4i32 (vselect (v4i32 VR128:$mask), (v4i32 VR128:$src1),
7129 def : Pat<(v4f32 (vselect (v4i32 VR128:$mask), (v4f32 VR128:$src1),
7132 def : Pat<(v2i64 (vselect (v2i64 VR128:$mask), (v2i64 VR128:$src1),
7135 def : Pat<(v2f64 (vselect (v2i64 VR128:$mask), (v2f64 VR128:$src1),
7138 def : Pat<(v8i32 (vselect (v8i32 VR256:$mask), (v8i32 VR256:$src1),
7141 def : Pat<(v8f32 (vselect (v8i32 VR256:$mask), (v8f32 VR256:$src1),
7144 def : Pat<(v4i64 (vselect (v4i64 VR256:$mask), (v4i64 VR256:$src1),
7147 def : Pat<(v4f64 (vselect (v4i64 VR256:$mask), (v4f64 VR256:$src1),
7153 def : Pat<(v32i8 (vselect (v32i8 VR256:$mask), (v32i8 VR256:$src1),
7167 def : Pat<(v4f32 (X86vzmovl (v4f32 (scalar_to_vector FR32:$src)))),
7169 def : Pat<(v4f32 (X86vzmovl (v4f32 VR128:$src))),
7171 def : Pat<(v4i32 (X86vzmovl (v4i32 VR128:$src))),
7173 def : Pat<(v2f64 (X86vzmovl (v2f64 (scalar_to_vector FR64:$src)))),
7177 def : Pat<(v8f32 (X86vzmovl (v8f32 VR256:$src))),
7181 def : Pat<(v4f64 (X86vzmovl (v4f64 VR256:$src))),
7185 def : Pat<(v8f32 (X86vzmovl (insert_subvector undef,
7190 def : Pat<(v4f64 (X86vzmovl (insert_subvector undef,
7199 def : Pat<(v8i32 (X86vzmovl (v8i32 VR256:$src))),
7201 def : Pat<(v4i64 (X86vzmovl (v4i64 VR256:$src))),
7211 def : Pat<(v4f32 (X86vzmovl (v4f32 VR128:$src))),
7213 def : Pat<(v4i32 (X86vzmovl (v4i32 VR128:$src))),
7215 def : Pat<(v2f64 (X86vzmovl (v2f64 VR128:$src))),
7270 def : Pat<(v16i8 (vselect (v16i8 XMM0), (v16i8 VR128:$src1),
7273 def : Pat<(v4i32 (vselect (v4i32 XMM0), (v4i32 VR128:$src1),
7276 def : Pat<(v4f32 (vselect (v4i32 XMM0), (v4f32 VR128:$src1),
7279 def : Pat<(v2i64 (vselect (v2i64 XMM0), (v2i64 VR128:$src1),
7282 def : Pat<(v2f64 (vselect (v2i64 XMM0), (v2f64 VR128:$src1),
7856 def : Pat<(int_x86_avx_vbroadcastf128_ps_256 addr:$src),
7876 def : Pat<(vinsert128_insert:$ins (v8f32 VR256:$src1), (v4f32 VR128:$src2),
7880 def : Pat<(vinsert128_insert:$ins (v4f64 VR256:$src1), (v2f64 VR128:$src2),
7885 def : Pat<(vinsert128_insert:$ins (v8f32 VR256:$src1), (loadv4f32 addr:$src2),
7889 def : Pat<(vinsert128_insert:$ins (v4f64 VR256:$src1), (loadv2f64 addr:$src2),
7896 def : Pat<(vinsert128_insert:$ins (v4i64 VR256:$src1), (v2i64 VR128:$src2),
7900 def : Pat<(vinsert128_insert:$ins (v8i32 VR256:$src1), (v4i32 VR128:$src2),
7904 def : Pat<(vinsert128_insert:$ins (v32i8 VR256:$src1), (v16i8 VR128:$src2),
7908 def : Pat<(vinsert128_insert:$ins (v16i16 VR256:$src1), (v8i16 VR128:$src2),
7913 def : Pat<(vinsert128_insert:$ins (v4i64 VR256:$src1), (loadv2i64 addr:$src2),
7917 def : Pat<(vinsert128_insert:$ins (v8i32 VR256:$src1),
7922 def : Pat<(vinsert128_insert:$ins (v32i8 VR256:$src1),
7927 def : Pat<(vinsert128_insert:$ins (v16i16 VR256:$src1),
7951 def : Pat<(vextract128_extract:$ext VR256:$src1, (iPTR imm)),
7955 def : Pat<(vextract128_extract:$ext VR256:$src1, (iPTR imm)),
7960 def : Pat<(store (v4f32 (vextract128_extract:$ext (v8f32 VR256:$src1),
7964 def : Pat<(store (v2f64 (vextract128_extract:$ext (v4f64 VR256:$src1),
7971 def : Pat<(vextract128_extract:$ext VR256:$src1, (iPTR imm)),
7975 def : Pat<(vextract128_extract:$ext VR256:$src1, (iPTR imm)),
7979 def : Pat<(vextract128_extract:$ext VR256:$src1, (iPTR imm)),
7983 def : Pat<(vextract128_extract:$ext VR256:$src1, (iPTR imm)),
7988 def : Pat<(alignedstore (v2i64 (vextract128_extract:$ext (v4i64 VR256:$src1),
7992 def : Pat<(alignedstore (v4i32 (vextract128_extract:$ext (v8i32 VR256:$src1),
7996 def : Pat<(alignedstore (v8i16 (vextract128_extract:$ext (v16i16 VR256:$src1),
8000 def : Pat<(alignedstore (v16i8 (vextract128_extract:$ext (v32i8 VR256:$src1),
8093 def : Pat<(v8f32 (X86VPermilpv VR256:$src1, (v8i32 VR256:$src2))),
8095 def : Pat<(v8f32 (X86VPermilpv VR256:$src1, (bc_v8i32 (loadv4i64 addr:$src2)))),
8097 def : Pat<(v4f64 (X86VPermilpv VR256:$src1, (v4i64 VR256:$src2))),
8099 def : Pat<(v4f64 (X86VPermilpv VR256:$src1, (loadv4i64 addr:$src2))),
8102 def : Pat<(v8i32 (X86VPermilpi VR256:$src1, (i8 imm:$imm))),
8104 def : Pat<(v4i64 (X86VPermilpi VR256:$src1, (i8 imm:$imm))),
8106 def : Pat<(v8i32 (X86VPermilpi (bc_v8i32 (loadv4i64 addr:$src1)),
8109 def : Pat<(v4i64 (X86VPermilpi (loadv4i64 addr:$src1), (i8 imm:$imm))),
8112 def : Pat<(v4f32 (X86VPermilpv VR128:$src1, (v4i32 VR128:$src2))),
8114 def : Pat<(v4f32 (X86VPermilpv VR128:$src1, (bc_v4i32 (loadv2i64 addr:$src2)))),
8116 def : Pat<(v2f64 (X86VPermilpv VR128:$src1, (v2i64 VR128:$src2))),
8118 def : Pat<(v2f64 (X86VPermilpv VR128:$src1, (loadv2i64 addr:$src2))),
8121 def : Pat<(v2i64 (X86VPermilpi VR128:$src1, (i8 imm:$imm))),
8123 def : Pat<(v2i64 (X86VPermilpi (loadv2i64 addr:$src1), (i8 imm:$imm))),
8146 def : Pat<(v4f64 (X86VPerm2x128 VR256:$src1, VR256:$src2, (i8 imm:$imm))),
8148 def : Pat<(v4f64 (X86VPerm2x128 VR256:$src1,
8154 def : Pat<(v8i32 (X86VPerm2x128 VR256:$src1, VR256:$src2, (i8 imm:$imm))),
8156 def : Pat<(v4i64 (X86VPerm2x128 VR256:$src1, VR256:$src2, (i8 imm:$imm))),
8158 def : Pat<(v32i8 (X86VPerm2x128 VR256:$src1, VR256:$src2, (i8 imm:$imm))),
8160 def : Pat<(v16i16 (X86VPerm2x128 VR256:$src1, VR256:$src2, (i8 imm:$imm))),
8163 def : Pat<(v8i32 (X86VPerm2x128 VR256:$src1,
8166 def : Pat<(v4i64 (X86VPerm2x128 VR256:$src1,
8169 def : Pat<(v32i8 (X86VPerm2x128 VR256:$src1,
8172 def : Pat<(v16i16 (X86VPerm2x128 VR256:$src1,
8226 def : Pat<(int_x86_vcvtph2ps_128 (vzmovl_v2i64 addr:$src)),
8228 def : Pat<(int_x86_vcvtph2ps_128 (vzload_v2i64 addr:$src)),
8231 def : Pat<(store (f64 (extractelt (bc_v2f64 (v8i16
8235 def : Pat<(store (i64 (extractelt (bc_v2i64 (v8i16
8239 def : Pat<(store (v8i16 (int_x86_vcvtps2ph_256 VR256:$src1, i32:$src2)),
8246 def : Pat<(fp_to_f16 FR32:$src),
8250 def : Pat<(f16_to_fp GR16:$src),
8254 def : Pat<(f16_to_fp (i16 (fp_to_f16 FR32:$src))),
8320 def : Pat<(OpVT256 (X86VBroadcast (OpVT256 VR256:$src))),
8338 def : Pat<(v8i16 (X86VBroadcast (i16 (trunc (i32 (load addr:$src)))))),
8340 def : Pat<(v16i16 (X86VBroadcast (i16 (trunc (i32 (load addr:$src)))))),
8342 def : Pat<(v8i16 (X86VBroadcast
8345 def : Pat<(v16i16 (X86VBroadcast
8351 def : Pat<(v8f32 (X86VBroadcast (v8f32 VR256:$src))),
8354 def : Pat<(v4f64 (X86VBroadcast (v4f64 VR256:$src))),
8361 def : Pat<(v4f32 (X86VBroadcast FR32:$src)),
8363 def : Pat<(v8f32 (X86VBroadcast FR32:$src)),
8365 def : Pat<(v4f64 (X86VBroadcast FR64:$src)),
8368 def : Pat<(v4i32 (X86VBroadcast GR32:$src)),
8370 def : Pat<(v8i32 (X86VBroadcast GR32:$src)),
8372 def : Pat<(v4i64 (X86VBroadcast GR64:$src)),
8375 def : Pat<(v16i8 (X86VBroadcast GR8:$src)),
8379 def : Pat<(v32i8 (X86VBroadcast GR8:$src)),
8384 def : Pat<(v8i16 (X86VBroadcast GR16:$src)),
8388 def : Pat<(v16i16 (X86VBroadcast GR16:$src)),
8396 def : Pat<(v2i64 (X86VBroadcast GR64:$src)),
8404 def : Pat<(v8i32 (X86VBroadcast (loadi32 addr:$src))),
8406 def : Pat<(v4i64 (X86VBroadcast (loadi64 addr:$src))),
8408 def : Pat<(v4i32 (X86VBroadcast (loadi32 addr:$src))),
8417 def : Pat<(v4f32 (X86VBroadcast FR32:$src)),
8419 def : Pat<(v8f32 (X86VBroadcast FR32:$src)),
8423 def : Pat<(v4f64 (X86VBroadcast FR64:$src)),
8428 def : Pat<(v4i32 (X86VBroadcast GR32:$src)),
8430 def : Pat<(v8i32 (X86VBroadcast GR32:$src)),
8434 def : Pat<(v4i64 (X86VBroadcast GR64:$src)),
8440 def : Pat<(v2f64 (X86VBroadcast f64:$src)),
8442 def : Pat<(v2i64 (X86VBroadcast i64:$src)),
8515 def : Pat<(v8i32 (X86VPerm2x128 VR256:$src1, VR256:$src2, (i8 imm:$imm))),
8517 def : Pat<(v32i8 (X86VPerm2x128 VR256:$src1, VR256:$src2, (i8 imm:$imm))),
8519 def : Pat<(v16i16 (X86VPerm2x128 VR256:$src1, VR256:$src2, (i8 imm:$imm))),
8522 def : Pat<(v32i8 (X86VPerm2x128 VR256:$src1, (bc_v32i8 (loadv4i64 addr:$src2)),
8525 def : Pat<(v16i16 (X86VPerm2x128 VR256:$src1,
8528 def : Pat<(v8i32 (X86VPerm2x128 VR256:$src1, (bc_v8i32 (loadv4i64 addr:$src2)),
8550 def : Pat<(vinsert128_insert:$ins (v4i64 VR256:$src1), (v2i64 VR128:$src2),
8554 def : Pat<(vinsert128_insert:$ins (v8i32 VR256:$src1), (v4i32 VR128:$src2),
8558 def : Pat<(vinsert128_insert:$ins (v32i8 VR256:$src1), (v16i8 VR128:$src2),
8562 def : Pat<(vinsert128_insert:$ins (v16i16 VR256:$src1), (v8i16 VR128:$src2),
8567 def : Pat<(vinsert128_insert:$ins (v4i64 VR256:$src1), (loadv2i64 addr:$src2),
8571 def : Pat<(vinsert128_insert:$ins (v8i32 VR256:$src1),
8576 def : Pat<(vinsert128_insert:$ins (v32i8 VR256:$src1),
8581 def : Pat<(vinsert128_insert:$ins (v16i16 VR256:$src1),
8602 def : Pat<(vextract128_extract:$ext VR256:$src1, (iPTR imm)),
8606 def : Pat<(vextract128_extract:$ext VR256:$src1, (iPTR imm)),
8610 def : Pat<(vextract128_extract:$ext VR256:$src1, (iPTR imm)),
8614 def : Pat<(vextract128_extract:$ext VR256:$src1, (iPTR imm)),
8619 def : Pat<(store (v2i64 (vextract128_extract:$ext (v4i64 VR256:$src1),
8623 def : Pat<(store (v4i32 (vextract128_extract:$ext (v8i32 VR256:$src1),
8627 def : Pat<(store (v8i16 (vextract128_extract:$ext (v16i16 VR256:$src1),
8631 def : Pat<(store (v16i8 (vextract128_extract:$ext (v32i8 VR256:$src1),
8673 def: Pat<(X86mstore addr:$ptr, (v8i32 VR256:$mask), (v8f32 VR256:$src)),
8676 def: Pat<(X86mstore addr:$ptr, (v8i32 VR256:$mask), (v8i32 VR256:$src)),
8679 def: Pat<(X86mstore addr:$ptr, (v4i32 VR128:$mask), (v4f32 VR128:$src)),
8682 def: Pat<(X86mstore addr:$ptr, (v4i32 VR128:$mask), (v4i32 VR128:$src)),
8685 def: Pat<(v8f32 (masked_load addr:$ptr, (v8i32 VR256:$mask), undef)),
8688 def: Pat<(v8f32 (masked_load addr:$ptr, (v8i32 VR256:$mask),
8692 def: Pat<(v8f32 (masked_load addr:$ptr, (v8i32 VR256:$mask), (v8f32 VR256:$src0))),
8696 def: Pat<(v8i32 (masked_load addr:$ptr, (v8i32 VR256:$mask), undef)),
8699 def: Pat<(v8i32 (masked_load addr:$ptr, (v8i32 VR256:$mask), (v8i32 immAllZerosV))),
8702 def: Pat<(v8i32 (masked_load addr:$ptr, (v8i32 VR256:$mask), (v8i32 VR256:$src0))),
8706 def: Pat<(v4f32 (masked_load addr:$ptr, (v4i32 VR128:$mask), undef)),
8709 def: Pat<(v4f32 (masked_load addr:$ptr, (v4i32 VR128:$mask),
8713 def: Pat<(v4f32 (masked_load addr:$ptr, (v4i32 VR128:$mask), (v4f32 VR128:$src0))),
8717 def: Pat<(v4i32 (masked_load addr:$ptr, (v4i32 VR128:$mask), undef)),
8720 def: Pat<(v4i32 (masked_load addr:$ptr, (v4i32 VR128:$mask), (v4i32 immAllZerosV))),
8723 def: Pat<(v4i32 (masked_load addr:$ptr, (v4i32 VR128:$mask), (v4i32 VR128:$src0))),
8727 def: Pat<(X86mstore addr:$ptr, (v4i64 VR256:$mask), (v4f64 VR256:$src)),
8730 def: Pat<(X86mstore addr:$ptr, (v4i64 VR256:$mask), (v4i64 VR256:$src)),
8733 def: Pat<(v4f64 (masked_load addr:$ptr, (v4i64 VR256:$mask), undef)),
8736 def: Pat<(v4f64 (masked_load addr:$ptr, (v4i64 VR256:$mask),
8740 def: Pat<(v4f64 (masked_load addr:$ptr, (v4i64 VR256:$mask), (v4f64 VR256:$src0))),
8744 def: Pat<(v4i64 (masked_load addr:$ptr, (v4i64 VR256:$mask), undef)),
8747 def: Pat<(v4i64 (masked_load addr:$ptr, (v4i64 VR256:$mask),
8751 def: Pat<(v4i64 (masked_load addr:$ptr, (v4i64 VR256:$mask), (v4i64 VR256:$src0))),
8755 def: Pat<(X86mstore addr:$ptr, (v2i64 VR128:$mask), (v2f64 VR128:$src)),
8758 def: Pat<(X86mstore addr:$ptr, (v2i64 VR128:$mask), (v2i64 VR128:$src)),
8761 def: Pat<(v2f64 (masked_load addr:$ptr, (v2i64 VR128:$mask), undef)),
8764 def: Pat<(v2f64 (masked_load addr:$ptr, (v2i64 VR128:$mask),
8768 def: Pat<(v2f64 (masked_load addr:$ptr, (v2i64 VR128:$mask), (v2f64 VR128:$src0))),
8772 def: Pat<(v2i64 (masked_load addr:$ptr, (v2i64 VR128:$mask), undef)),
8775 def: Pat<(v2i64 (masked_load addr:$ptr, (v2i64 VR128:$mask),
8779 def: Pat<(v2i64 (masked_load addr:$ptr, (v2i64 VR128:$mask), (v2i64 VR128:$src0))),
8861 def : Pat<(store (f128 FR128:$src), addr:$dst),
8864 def : Pat<(loadf128 addr:$src),
8868 def : Pat<(X86fand FR128:$src1, (loadf128 addr:$src2)),
8873 def : Pat<(X86fand FR128:$src1, FR128:$src2),
8878 def : Pat<(and FR128:$src1, FR128:$src2),
8883 def : Pat<(X86for FR128:$src1, (loadf128 addr:$src2)),
8888 def : Pat<(X86for FR128:$src1, FR128:$src2),
8893 def : Pat<(or FR128:$src1, FR128:$src2),
8898 def : Pat<(X86fxor FR128:$src1, (loadf128 addr:$src2)),
8903 def : Pat<(X86fxor FR128:$src1, FR128:$src2),
8908 def : Pat<(xor FR128:$src1, FR128:$src2),