(VMOVNTDQAZrm addr:$src)>;
def : Pat<(v8i64 (alignednontemporalload addr:$src)),
(VMOVNTDQAZrm addr:$src)>;
- def : Pat<(v16i32 (bitconvert (v8i64 (alignednontemporalload addr:$src)))),
- (VMOVNTDQAZrm addr:$src)>;
- def : Pat<(v32i16 (bitconvert (v8i64 (alignednontemporalload addr:$src)))),
- (VMOVNTDQAZrm addr:$src)>;
- def : Pat<(v64i8 (bitconvert (v8i64 (alignednontemporalload addr:$src)))),
- (VMOVNTDQAZrm addr:$src)>;
}
let Predicates = [HasVLX], AddedComplexity = 400 in {
(VMOVNTDQAZ256rm addr:$src)>;
def : Pat<(v4i64 (alignednontemporalload addr:$src)),
(VMOVNTDQAZ256rm addr:$src)>;
- def : Pat<(v8i32 (bitconvert (v4i64 (alignednontemporalload addr:$src)))),
- (VMOVNTDQAZ256rm addr:$src)>;
- def : Pat<(v16i16 (bitconvert (v4i64 (alignednontemporalload addr:$src)))),
- (VMOVNTDQAZ256rm addr:$src)>;
- def : Pat<(v32i8 (bitconvert (v4i64 (alignednontemporalload addr:$src)))),
- (VMOVNTDQAZ256rm addr:$src)>;
def : Pat<(alignednontemporalstore (v4i32 VR128X:$src), addr:$dst),
(VMOVNTDQZ128mr addr:$dst, VR128X:$src)>;
(VMOVNTDQAZ128rm addr:$src)>;
def : Pat<(v2i64 (alignednontemporalload addr:$src)),
(VMOVNTDQAZ128rm addr:$src)>;
- def : Pat<(v4i32 (bitconvert (v2i64 (alignednontemporalload addr:$src)))),
- (VMOVNTDQAZ128rm addr:$src)>;
- def : Pat<(v8i16 (bitconvert (v2i64 (alignednontemporalload addr:$src)))),
- (VMOVNTDQAZ128rm addr:$src)>;
- def : Pat<(v16i8 (bitconvert (v2i64 (alignednontemporalload addr:$src)))),
- (VMOVNTDQAZ128rm addr:$src)>;
}
//===----------------------------------------------------------------------===//