diff --git a/llvm/lib/Target/PowerPC/P10InstrResources.td b/llvm/lib/Target/PowerPC/P10InstrResources.td --- a/llvm/lib/Target/PowerPC/P10InstrResources.td +++ b/llvm/lib/Target/PowerPC/P10InstrResources.td @@ -1979,7 +1979,6 @@ ICBTLS, ICCCI, LA, LA8, - LDMX, MFDCR, MFPMR, MFSRIN, diff --git a/llvm/lib/Target/PowerPC/P9InstrResources.td b/llvm/lib/Target/PowerPC/P9InstrResources.td --- a/llvm/lib/Target/PowerPC/P9InstrResources.td +++ b/llvm/lib/Target/PowerPC/P9InstrResources.td @@ -807,14 +807,6 @@ (instregex "ST(B|H|W|D)CX$") )>; -// Cracked Load Instruction. -// Two consecutive load operations for a total of 8 cycles. -def : InstRW<[P9_LoadAndLoadOp_8C, IP_AGEN_1C, IP_AGEN_1C, - DISP_1C, DISP_1C], - (instrs - LDMX -)>; - // Cracked Load instruction. // Requires consecutive Load and ALU pieces totaling 6 cycles. The Load and ALU // operations cannot be done at the same time and so their latencies are added. diff --git a/llvm/lib/Target/PowerPC/PPCInstr64Bit.td b/llvm/lib/Target/PowerPC/PPCInstr64Bit.td --- a/llvm/lib/Target/PowerPC/PPCInstr64Bit.td +++ b/llvm/lib/Target/PowerPC/PPCInstr64Bit.td @@ -1396,10 +1396,6 @@ "ldux $rD, $addr", IIC_LdStLDUX, []>, RegConstraint<"$addr.ptrreg = $ea_result">, NoEncode<"$ea_result">, isPPC64; - -def LDMX : XForm_1<31, 309, (outs g8rc:$rD), (ins memrr:$src), - "ldmx $rD, $src", IIC_LdStLD, []>, isPPC64, - Requires<[IsISA3_0]>; } let mayLoad = 1, hasNoSchedulingInfo = 1 in { diff --git a/llvm/lib/Target/PowerPC/PPCScheduleP9.td b/llvm/lib/Target/PowerPC/PPCScheduleP9.td --- a/llvm/lib/Target/PowerPC/PPCScheduleP9.td +++ b/llvm/lib/Target/PowerPC/PPCScheduleP9.td @@ -404,7 +404,6 @@ def P9_LoadAndALU2Op_7C : WriteSequence<[P9_LS_4C, P9_ALU_3C]>; def P9_LoadAndALU2Op_8C : WriteSequence<[P9_LS_5C, P9_ALU_3C]>; def P9_LoadAndPMOp_8C : WriteSequence<[P9_LS_5C, P9_PM_3C]>; - def P9_LoadAndLoadOp_8C : WriteSequence<[P9_LS_4C, P9_LS_4C]>; def P9_IntDivAndALUOp_18C_8 : WriteSequence<[P9_DIV_16C_8, P9_ALU_2C]>; def P9_IntDivAndALUOp_26C_8 : WriteSequence<[P9_DIV_24C_8, P9_ALU_2C]>; def P9_IntDivAndALUOp_42C_8 : WriteSequence<[P9_DIV_40C_8, P9_ALU_2C]>; diff --git a/llvm/lib/Target/PowerPC/README_P9.txt b/llvm/lib/Target/PowerPC/README_P9.txt --- a/llvm/lib/Target/PowerPC/README_P9.txt +++ b/llvm/lib/Target/PowerPC/README_P9.txt @@ -579,11 +579,6 @@ - Provide builtins since not all FC's necessarily have an existing LLVM atomic operation -Load Doubleword Monitored (ldmx): -- Investigate whether there are any uses for this. It seems to be related to - Garbage Collection so it isn't likely to be all that useful for most - languages we deal with. - Move to CR from XER Extended (mcrxrx): - Is there a use for this in LLVM? diff --git a/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding.txt b/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding.txt --- a/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding.txt +++ b/llvm/test/MC/Disassembler/PowerPC/ppc64-encoding.txt @@ -151,9 +151,6 @@ # CHECK: ldux 2, 3, 4 0x7c 0x43 0x20 0x6a -# CHECK: ldmx 2, 3, 4 -0x7c 0x43 0x22 0x6a - # CHECK: lq 2, 128(4) 0xe0 0x44 0x00 0x80 diff --git a/llvm/test/MC/PowerPC/ppc64-encoding.s b/llvm/test/MC/PowerPC/ppc64-encoding.s --- a/llvm/test/MC/PowerPC/ppc64-encoding.s +++ b/llvm/test/MC/PowerPC/ppc64-encoding.s @@ -238,9 +238,6 @@ # CHECK-BE: ldux 2, 3, 4 # encoding: [0x7c,0x43,0x20,0x6a] # CHECK-LE: ldux 2, 3, 4 # encoding: [0x6a,0x20,0x43,0x7c] ldux 2, 3, 4 -# CHECK-BE: ldmx 2, 3, 4 # encoding: [0x7c,0x43,0x22,0x6a] -# CHECK-LE: ldmx 2, 3, 4 # encoding: [0x6a,0x22,0x43,0x7c] - ldmx 2, 3, 4 # CHECK-BE: lq 2, 128(4) # encoding: [0xe0,0x44,0x00,0x80] # CHECK-LE: lq 2, 128(4) # encoding: [0x80,0x00,0x44,0xe0] lq 2, 128(4)