[PATCH] D138004: [GlobalISel] Remove semantic operand of G_IS_FPCLASS
Serge Pavlov via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Tue Nov 15 00:49:25 PST 2022
This revision was landed with ongoing or failed builds.
This revision was automatically updated to reflect the committed changes.
Closed by commit rGec893da99080: [GlobalISel] Remove semantic operand of G_IS_FPCLASS (authored by sepavloff).
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D138004/new/
https://reviews.llvm.org/D138004
Files:
llvm/docs/GlobalISel/GenericOpcode.rst
llvm/include/llvm/Target/GenericOpcodes.td
llvm/lib/CodeGen/MachineVerifier.cpp
llvm/test/MachineVerifier/test_g_is_fpclass.mir
Index: llvm/test/MachineVerifier/test_g_is_fpclass.mir
===================================================================
--- llvm/test/MachineVerifier/test_g_is_fpclass.mir
+++ llvm/test/MachineVerifier/test_g_is_fpclass.mir
@@ -15,26 +15,23 @@
%ptr:_(p0) = COPY $x0
%vector:_(<4 x s32>) = COPY $q0
- %val1:_(s1) = G_IS_FPCLASS %s32, 1
+ %val1:_(s1) = G_IS_FPCLASS %s32
; CHECK: *** Bad machine code: Too few operands ***
- ; CHECK: 4 operands expected, but 3 given.
+ ; CHECK: 3 operands expected, but 2 given.
- %val2:_(p0) = G_IS_FPCLASS %s32, 3, 2
+ %val2:_(p0) = G_IS_FPCLASS %s32, 3
; CHECK: *** Bad machine code: Destination must be a scalar or vector of scalars ***
- %val3:_(s1) = G_IS_FPCLASS %s32, 1, 66
- ; CHECK: *** Bad machine code: Incorrect floating-point semantics (operand 3) ***
-
- %val4:_(s1) = G_IS_FPCLASS %s32, 7777, 2
+ %val4:_(s1) = G_IS_FPCLASS %s32, 7777
; CHECK: *** Bad machine code: Incorrect floating-point class set (operand 2) ***
- %val5:_(s1) = G_IS_FPCLASS %ptr:_(p0), 3, 2
+ %val5:_(s1) = G_IS_FPCLASS %ptr:_(p0), 3
; CHECK: *** Bad machine code: Source must be a scalar or vector of scalars ***
- %var6:_(s1) = G_IS_FPCLASS %vector:_(<4 x s32>), 1, 2
+ %var6:_(s1) = G_IS_FPCLASS %vector:_(<4 x s32>), 1
; CHECK: *** Bad machine code: operand types must be all-vector or all-scalar ***
- %var7:_(<2 x s1>) = G_IS_FPCLASS %vector:_(<4 x s32>), 1, 2
+ %var7:_(<2 x s1>) = G_IS_FPCLASS %vector:_(<4 x s32>), 1
; CHECK: *** Bad machine code: operand types must preserve number of vector elements ***
...
Index: llvm/lib/CodeGen/MachineVerifier.cpp
===================================================================
--- llvm/lib/CodeGen/MachineVerifier.cpp
+++ llvm/lib/CodeGen/MachineVerifier.cpp
@@ -1714,16 +1714,6 @@
report("Incorrect floating-point class set (operand 2)", MI);
break;
}
- const MachineOperand &SemanticsMO = MI->getOperand(3);
- if (!SemanticsMO.isImm()) {
- report("floating-point semantics (operand 3) must be an immediate", MI);
- break;
- }
- int64_t Semantics = SemanticsMO.getImm();
- if (Semantics < 0 || Semantics > APFloat::S_MaxSemantics) {
- report("Incorrect floating-point semantics (operand 3)", MI);
- break;
- }
break;
}
case TargetOpcode::G_ASSERT_ALIGN: {
Index: llvm/include/llvm/Target/GenericOpcodes.td
===================================================================
--- llvm/include/llvm/Target/GenericOpcodes.td
+++ llvm/include/llvm/Target/GenericOpcodes.td
@@ -748,7 +748,7 @@
// Generic opcode equivalent to the llvm.is_fpclass intrinsic.
def G_IS_FPCLASS: GenericInstruction {
let OutOperandList = (outs type0:$dst);
- let InOperandList = (ins type1:$src, unknown:$test, unknown:$fpsem);
+ let InOperandList = (ins type1:$src, unknown:$test);
let hasSideEffects = false;
}
Index: llvm/docs/GlobalISel/GenericOpcode.rst
===================================================================
--- llvm/docs/GlobalISel/GenericOpcode.rst
+++ llvm/docs/GlobalISel/GenericOpcode.rst
@@ -484,8 +484,7 @@
^^^^^^^^^^^^
Tests if the first operand, which must be floating-point scalar or vector, has
-floating-point class specified by the second operand. The third operand
-specifies floating-point semantics of the tested value. Returns non-zero (true)
+floating-point class specified by the second operand. Returns non-zero (true)
or zero (false). It's target specific whether a true value is 1, ~0U, or some
other non-zero value. If the first operand is a vector, the returned value is a
vector of the same length.
-------------- next part --------------
A non-text attachment was scrubbed...
Name: D138004.475360.patch
Type: text/x-patch
Size: 3685 bytes
Desc: not available
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20221115/1ef469ac/attachment.bin>
More information about the llvm-commits
mailing list