Skip to content
This repository was archived by the owner on May 28, 2025. It is now read-only.

Commit 767c9c5

Browse files
committed
[X86] Remove an isel pattern than can never match. Remove bitcasts of loads from a few others.
1 parent c02332a commit 767c9c5

File tree

1 file changed

+9
-9
lines changed

1 file changed

+9
-9
lines changed

llvm/lib/Target/X86/X86InstrXOP.td

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -335,13 +335,13 @@ multiclass xop4op_int<bits<8> opc, string OpcodeStr, RegisterClass RC,
335335
[(set RC:$dst, (VT (or (and RC:$src3, RC:$src1),
336336
(X86andnp RC:$src3, RC:$src2))))]>, XOP_4V,
337337
Sched<[sched]>;
338-
// FIXME: This pattern can't match.
338+
// FIXME: We can't write a pattern for this in tablegen.
339+
let hasSideEffects = 0, mayLoad = 1 in
339340
def rrm : IXOPi8Reg<opc, MRMSrcMemOp4, (outs RC:$dst),
340341
(ins RC:$src1, RC:$src2, x86memop:$src3),
341342
!strconcat(OpcodeStr,
342343
"\t{$src3, $src2, $src1, $dst|$dst, $src1, $src2, $src3}"),
343-
[(set RC:$dst, (VT (or (and (load addr:$src3), RC:$src1),
344-
(X86andnp (load addr:$src3), RC:$src2))))]>,
344+
[]>,
345345
XOP_4V, VEX_W, Sched<[sched.Folded, sched.ReadAfterFold, sched.ReadAfterFold]>;
346346
def rmr : IXOPi8Reg<opc, MRMSrcMem, (outs RC:$dst),
347347
(ins RC:$src1, x86memop:$src2, RC:$src3),
@@ -383,13 +383,13 @@ let Predicates = [HasXOP] in {
383383
(VPCMOVrrr VR128:$src1, VR128:$src2, VR128:$src3)>;
384384

385385
def : Pat<(or (and VR128:$src3, VR128:$src1),
386-
(X86andnp VR128:$src3, (bc_v16i8 (loadv2i64 addr:$src2)))),
386+
(X86andnp VR128:$src3, (loadv16i8 addr:$src2))),
387387
(VPCMOVrmr VR128:$src1, addr:$src2, VR128:$src3)>;
388388
def : Pat<(or (and VR128:$src3, VR128:$src1),
389-
(X86andnp VR128:$src3, (bc_v8i16 (loadv2i64 addr:$src2)))),
389+
(X86andnp VR128:$src3, (loadv8i16 addr:$src2))),
390390
(VPCMOVrmr VR128:$src1, addr:$src2, VR128:$src3)>;
391391
def : Pat<(or (and VR128:$src3, VR128:$src1),
392-
(X86andnp VR128:$src3, (bc_v4i32 (loadv2i64 addr:$src2)))),
392+
(X86andnp VR128:$src3, (loadv4i32 addr:$src2))),
393393
(VPCMOVrmr VR128:$src1, addr:$src2, VR128:$src3)>;
394394

395395
def : Pat<(v32i8 (or (and VR256:$src3, VR256:$src1),
@@ -403,13 +403,13 @@ let Predicates = [HasXOP] in {
403403
(VPCMOVYrrr VR256:$src1, VR256:$src2, VR256:$src3)>;
404404

405405
def : Pat<(or (and VR256:$src3, VR256:$src1),
406-
(X86andnp VR256:$src3, (bc_v32i8 (loadv4i64 addr:$src2)))),
406+
(X86andnp VR256:$src3, (loadv32i8 addr:$src2))),
407407
(VPCMOVYrmr VR256:$src1, addr:$src2, VR256:$src3)>;
408408
def : Pat<(or (and VR256:$src3, VR256:$src1),
409-
(X86andnp VR256:$src3, (bc_v16i16 (loadv4i64 addr:$src2)))),
409+
(X86andnp VR256:$src3, (loadv16i16 addr:$src2))),
410410
(VPCMOVYrmr VR256:$src1, addr:$src2, VR256:$src3)>;
411411
def : Pat<(or (and VR256:$src3, VR256:$src1),
412-
(X86andnp VR256:$src3, (bc_v8i32 (loadv4i64 addr:$src2)))),
412+
(X86andnp VR256:$src3, (loadv8i32 addr:$src2))),
413413
(VPCMOVYrmr VR256:$src1, addr:$src2, VR256:$src3)>;
414414
}
415415

0 commit comments

Comments
 (0)