RFR: 8333890: Fatal error in auto-vectorizer with float16 kernel. [v2]
Emanuel Peter
epeter at openjdk.org
Mon Jul 8 10:50:38 UTC 2024
On Mon, 8 Jul 2024 06:41:22 GMT, Jatin Bhateja <jbhateja at openjdk.org> wrote:
>> Good.
>
> Thanks @vnkozlov for review and approval.
@jatin-bhateja It seems we are using `TypeInt::SHORT`. But this is just a `INT_T` in the end. Hmm.
//------------------------------ConvF2HFNode------------------------------------
// Convert Float to Halffloat
class ConvF2HFNode : public ConvertNode {
public:
ConvF2HFNode(Node* in1) : ConvertNode(TypeInt::SHORT, in1) {}
virtual int Opcode() const;
virtual const Type* in_type() const { return TypeInt::FLOAT; }
virtual const Type* Value(PhaseGVN* phase) const;
};
This seems to somewhat clash with an earlier comment here:
class ConvertNode : public TypeNode {
protected:
ConvertNode(const Type* t, Node* input) : TypeNode(t, 2) {
init_class_id(Class_Convert);
init_req(1, input);
}
public:
virtual const Type* in_type() const = 0;
virtual uint ideal_reg() const;
// Create a convert node for a given input and output type.
// Conversions to and from half float are specified via T_SHORT.
static Node* create_convert(BasicType source, BasicType target, Node* input);
};
-------------
PR Comment: https://git.openjdk.org/jdk/pull/20062#issuecomment-2213669098
More information about the hotspot-compiler-dev
mailing list