@@ -2545,44 +2545,45 @@ defm PSIGND : SS3I_binop_rm_int_32<0x09, "psignd",
2545
2545
int_x86_ssse3_psign_d_128>;
2546
2546
2547
2547
let isTwoAddress = 1 in {
2548
- def PALIGN64rr : SS38I <0x0F , MRMSrcReg, (outs VR64:$dst),
2549
- (ins VR64:$src1, VR64:$src2, i16imm:$src3),
2550
- " palignr\t {$src2, $dst|$dst, $src2}" ,
2551
- [(set VR64:$dst,
2552
- (int_x86_ssse3_palign_r
2553
- VR64:$src1, VR64:$src2,
2554
- imm:$src3))]>;
2555
- def PALIGN64rm : SS38I <0x0F , MRMSrcReg, (outs VR64:$dst),
2556
- (ins VR64:$src1, i64mem:$src2, i16imm:$src3),
2557
- " palignr\t {$src2, $dst|$dst, $src2}" ,
2558
- [(set VR64:$dst,
2559
- (int_x86_ssse3_palign_r
2560
- VR64:$src1,
2561
- (bitconvert (memopv2i32 addr:$src2)),
2562
- imm:$src3))]>;
2563
-
2564
- def PALIGN128rr : SS38I <0x0F , MRMSrcReg, (outs VR128:$dst),
2565
- (ins VR128:$src1, VR128:$src2, i32imm:$src3),
2566
- " palignr\t {$src2, $dst|$dst, $src2}" ,
2567
- [(set VR128:$dst,
2568
- (int_x86_ssse3_palign_r_128
2569
- VR128:$src1, VR128:$src2,
2570
- imm:$src3))]>, OpSize;
2571
- def PALIGN128rm : SS38I <0x0F , MRMSrcReg, (outs VR128:$dst),
2572
- (ins VR128:$src1, i128mem:$src2, i32imm:$src3),
2573
- " palignr\t {$src2, $dst|$dst, $src2}" ,
2574
- [(set VR128:$dst,
2575
- (int_x86_ssse3_palign_r_128
2576
- VR128:$src1,
2577
- (bitconvert (memopv4i32 addr:$src2)),
2578
- imm:$src3))]>, OpSize;
2548
+ def PALIGNR64rr : SS3AI <0x0F , MRMSrcReg, (outs VR64:$dst),
2549
+ (ins VR64:$src1, VR64:$src2, i16imm:$src3),
2550
+ " palignr\t {$src2, $dst|$dst, $src2}" ,
2551
+ [(set VR64:$dst,
2552
+ (int_x86_ssse3_palign_r
2553
+ VR64:$src1, VR64:$src2,
2554
+ imm:$src3))]>;
2555
+ def PALIGNR64rm : SS3AI <0x0F , MRMSrcReg, (outs VR64:$dst),
2556
+ (ins VR64:$src1, i64mem:$src2, i16imm:$src3),
2557
+ " palignr\t {$src2, $dst|$dst, $src2}" ,
2558
+ [(set VR64:$dst,
2559
+ (int_x86_ssse3_palign_r
2560
+ VR64:$src1,
2561
+ (bitconvert (memopv2i32 addr:$src2)),
2562
+ imm:$src3))]>;
2563
+
2564
+ def PALIGNR128rr : SS3AI <0x0F , MRMSrcReg, (outs VR128:$dst),
2565
+ (ins VR128:$src1, VR128:$src2, i32imm:$src3),
2566
+ " palignr\t {$src2, $dst|$dst, $src2}" ,
2567
+ [(set VR128:$dst,
2568
+ (int_x86_ssse3_palign_r_128
2569
+ VR128:$src1, VR128:$src2,
2570
+ imm:$src3))]>, OpSize;
2571
+ def PALIGNR128rm : SS3AI <0x0F , MRMSrcReg, (outs VR128:$dst),
2572
+ (ins VR128:$src1, i128mem:$src2, i32imm:$src3),
2573
+ " palignr\t {$src2, $dst|$dst, $src2}" ,
2574
+ [(set VR128:$dst,
2575
+ (int_x86_ssse3_palign_r_128
2576
+ VR128:$src1,
2577
+ (bitconvert (memopv4i32 addr:$src2)),
2578
+ imm:$src3))]>, OpSize;
2579
2579
}
2580
2580
2581
2581
// ===----------------------------------------------------------------------===//
2582
2582
// Non-Instruction Patterns
2583
2583
// ===----------------------------------------------------------------------===//
2584
2584
2585
2585
// 128-bit vector undef's.
2586
+ def : Pat<(v4f32 (undef)), (IMPLICIT_DEF_VR128)>, Requires<[HasSSE2]>;
2586
2587
def : Pat<(v2f64 (undef)), (IMPLICIT_DEF_VR128)>, Requires<[HasSSE2]>;
2587
2588
def : Pat<(v16i8 (undef)), (IMPLICIT_DEF_VR128)>, Requires<[HasSSE2]>;
2588
2589
def : Pat<(v8i16 (undef)), (IMPLICIT_DEF_VR128)>, Requires<[HasSSE2]>;
0 commit comments