@@ -460,7 +460,7 @@ def AVX512_512_SEXT_MASK_64 : I<0, Pseudo, (outs VR512:$dst),
460
460
}
461
461
462
462
let isReMaterializable = 1, isAsCheapAsAMove = 1, canFoldAsLoad = 1,
463
- isPseudo = 1, Predicates = [HasVLX ], SchedRW = [WriteZero] in {
463
+ isPseudo = 1, Predicates = [HasAVX512 ], SchedRW = [WriteZero] in {
464
464
def AVX512_128_SET0 : I<0, Pseudo, (outs VR128X:$dst), (ins), "",
465
465
[(set VR128X:$dst, (v4i32 immAllZerosV))]>;
466
466
def AVX512_256_SET0 : I<0, Pseudo, (outs VR256X:$dst), (ins), "",
@@ -470,7 +470,7 @@ def AVX512_256_SET0 : I<0, Pseudo, (outs VR256X:$dst), (ins), "",
470
470
// Alias instructions that map fld0 to xorps for sse or vxorps for avx.
471
471
// This is expanded by ExpandPostRAPseudos.
472
472
let isReMaterializable = 1, isAsCheapAsAMove = 1, canFoldAsLoad = 1,
473
- isPseudo = 1, SchedRW = [WriteZero], Predicates = [HasVLX, HasDQI ] in {
473
+ isPseudo = 1, SchedRW = [WriteZero], Predicates = [HasAVX512 ] in {
474
474
def AVX512_FsFLD0SS : I<0, Pseudo, (outs FR32X:$dst), (ins), "",
475
475
[(set FR32X:$dst, fp32imm0)]>;
476
476
def AVX512_FsFLD0SD : I<0, Pseudo, (outs FR64X:$dst), (ins), "",
@@ -3439,31 +3439,31 @@ let Predicates = [HasAVX512] in {
3439
3439
// Move scalar to XMM zero-extended, zeroing a VR128X then do a
3440
3440
// MOVS{S,D} to the lower bits.
3441
3441
def : Pat<(v4f32 (X86vzmovl (v4f32 (scalar_to_vector FR32X:$src)))),
3442
- (VMOVSSZrr (v4f32 (V_SET0 )), FR32X:$src)>;
3442
+ (VMOVSSZrr (v4f32 (AVX512_128_SET0 )), FR32X:$src)>;
3443
3443
def : Pat<(v4f32 (X86vzmovl (v4f32 VR128X:$src))),
3444
- (VMOVSSZrr (v4f32 (V_SET0 )), (COPY_TO_REGCLASS VR128X:$src, FR32X))>;
3444
+ (VMOVSSZrr (v4f32 (AVX512_128_SET0 )), (COPY_TO_REGCLASS VR128X:$src, FR32X))>;
3445
3445
def : Pat<(v4i32 (X86vzmovl (v4i32 VR128X:$src))),
3446
- (VMOVSSZrr (v4i32 (V_SET0 )), (COPY_TO_REGCLASS VR128X:$src, FR32X))>;
3446
+ (VMOVSSZrr (v4i32 (AVX512_128_SET0 )), (COPY_TO_REGCLASS VR128X:$src, FR32X))>;
3447
3447
def : Pat<(v2f64 (X86vzmovl (v2f64 (scalar_to_vector FR64X:$src)))),
3448
- (VMOVSDZrr (v2f64 (V_SET0 )), FR64X:$src)>;
3448
+ (VMOVSDZrr (v2f64 (AVX512_128_SET0 )), FR64X:$src)>;
3449
3449
}
3450
3450
3451
3451
// Move low f32 and clear high bits.
3452
3452
def : Pat<(v8f32 (X86vzmovl (v8f32 VR256X:$src))),
3453
3453
(SUBREG_TO_REG (i32 0),
3454
- (VMOVSSZrr (v4f32 (V_SET0 )),
3454
+ (VMOVSSZrr (v4f32 (AVX512_128_SET0 )),
3455
3455
(EXTRACT_SUBREG (v8f32 VR256X:$src), sub_xmm)), sub_xmm)>;
3456
3456
def : Pat<(v8i32 (X86vzmovl (v8i32 VR256X:$src))),
3457
3457
(SUBREG_TO_REG (i32 0),
3458
- (VMOVSSZrr (v4i32 (V_SET0 )),
3458
+ (VMOVSSZrr (v4i32 (AVX512_128_SET0 )),
3459
3459
(EXTRACT_SUBREG (v8i32 VR256X:$src), sub_xmm)), sub_xmm)>;
3460
3460
def : Pat<(v16f32 (X86vzmovl (v16f32 VR512:$src))),
3461
3461
(SUBREG_TO_REG (i32 0),
3462
- (VMOVSSZrr (v4f32 (V_SET0 )),
3462
+ (VMOVSSZrr (v4f32 (AVX512_128_SET0 )),
3463
3463
(EXTRACT_SUBREG (v16f32 VR512:$src), sub_xmm)), sub_xmm)>;
3464
3464
def : Pat<(v16i32 (X86vzmovl (v16i32 VR512:$src))),
3465
3465
(SUBREG_TO_REG (i32 0),
3466
- (VMOVSSZrr (v4i32 (V_SET0 )),
3466
+ (VMOVSSZrr (v4i32 (AVX512_128_SET0 )),
3467
3467
(EXTRACT_SUBREG (v16i32 VR512:$src), sub_xmm)), sub_xmm)>;
3468
3468
3469
3469
let AddedComplexity = 20 in {
@@ -3525,11 +3525,11 @@ let Predicates = [HasAVX512] in {
3525
3525
}
3526
3526
def : Pat<(v8f32 (X86vzmovl (insert_subvector undef,
3527
3527
(v4f32 (scalar_to_vector FR32X:$src)), (iPTR 0)))),
3528
- (SUBREG_TO_REG (i32 0), (v4f32 (VMOVSSZrr (v4f32 (V_SET0 )),
3528
+ (SUBREG_TO_REG (i32 0), (v4f32 (VMOVSSZrr (v4f32 (AVX512_128_SET0 )),
3529
3529
FR32X:$src)), sub_xmm)>;
3530
3530
def : Pat<(v4f64 (X86vzmovl (insert_subvector undef,
3531
3531
(v2f64 (scalar_to_vector FR64X:$src)), (iPTR 0)))),
3532
- (SUBREG_TO_REG (i64 0), (v2f64 (VMOVSDZrr (v2f64 (V_SET0 )),
3532
+ (SUBREG_TO_REG (i64 0), (v2f64 (VMOVSDZrr (v2f64 (AVX512_128_SET0 )),
3533
3533
FR64X:$src)), sub_xmm)>;
3534
3534
def : Pat<(v4i64 (X86vzmovl (insert_subvector undef,
3535
3535
(v2i64 (scalar_to_vector (loadi64 addr:$src))), (iPTR 0)))),
@@ -3538,18 +3538,18 @@ let Predicates = [HasAVX512] in {
3538
3538
// Move low f64 and clear high bits.
3539
3539
def : Pat<(v4f64 (X86vzmovl (v4f64 VR256X:$src))),
3540
3540
(SUBREG_TO_REG (i32 0),
3541
- (VMOVSDZrr (v2f64 (V_SET0 )),
3541
+ (VMOVSDZrr (v2f64 (AVX512_128_SET0 )),
3542
3542
(EXTRACT_SUBREG (v4f64 VR256X:$src), sub_xmm)), sub_xmm)>;
3543
3543
def : Pat<(v8f64 (X86vzmovl (v8f64 VR512:$src))),
3544
3544
(SUBREG_TO_REG (i32 0),
3545
- (VMOVSDZrr (v2f64 (V_SET0 )),
3545
+ (VMOVSDZrr (v2f64 (AVX512_128_SET0 )),
3546
3546
(EXTRACT_SUBREG (v8f64 VR512:$src), sub_xmm)), sub_xmm)>;
3547
3547
3548
3548
def : Pat<(v4i64 (X86vzmovl (v4i64 VR256X:$src))),
3549
- (SUBREG_TO_REG (i32 0), (VMOVSDZrr (v2i64 (V_SET0 )),
3549
+ (SUBREG_TO_REG (i32 0), (VMOVSDZrr (v2i64 (AVX512_128_SET0 )),
3550
3550
(EXTRACT_SUBREG (v4i64 VR256X:$src), sub_xmm)), sub_xmm)>;
3551
3551
def : Pat<(v8i64 (X86vzmovl (v8i64 VR512:$src))),
3552
- (SUBREG_TO_REG (i32 0), (VMOVSDZrr (v2i64 (V_SET0 )),
3552
+ (SUBREG_TO_REG (i32 0), (VMOVSDZrr (v2i64 (AVX512_128_SET0 )),
3553
3553
(EXTRACT_SUBREG (v8i64 VR512:$src), sub_xmm)), sub_xmm)>;
3554
3554
3555
3555
// Extract and store.
0 commit comments