RFR: 8333890: Fatal error in auto-vectorizer with float16 kernel [v2]
Jatin Bhateja
jbhateja at openjdk.org
Mon Jul 8 11:24:39 UTC 2024
On Mon, 8 Jul 2024 10:47:29 GMT, Emanuel Peter <epeter at openjdk.org> wrote:
>> 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);
> };
Thanks @eme64 and @TobiHartmann , thanks for filing follow up bug and assigning it to me.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/20062#issuecomment-2213744384
More information about the hotspot-compiler-dev
mailing list