On Tue, 17 Dec 2024 11:06:17 GMT, Jatin Bhateja <jbhat...@openjdk.org> wrote:

>> test/hotspot/jtreg/compiler/c2/irTests/TestFloat16ScalarOperations.java line 
>> 275:
>> 
>>> 273:     @IR(counts = {IRNode.ADD_HF, " 0 ", IRNode.REINTERPRET_S2HF, " 0 
>>> ", IRNode.REINTERPRET_HF2S, " 0 "},
>>> 274:         applyIfCPUFeature = {"avx512_fp16", "true"})
>>> 275:     public void testAddConstantFolding() {
>> 
>> Ok, this is great. I'm missing some cases that check correct rounding. For 
>> that, it might be good to have one example with random constants, so 2 
>> random Float16 values. You can generate them in static context, and also 
>> compute the result in static context, so it should be evaluated in the 
>> interpreter. That way, we can compare the result of interpreter to compiled 
>> code.
>> 
>> Do that for all operations.
>
> Hey @eme64 , constant folding is done at FP32 granularity, so we first upcast 
> FP16 to FP32 values using hf2f runtime helper, operate over FP32 values and 
> then down cast it back to FP16 value using f2hf helper.  Thus both compiler 
> value transformations and interpreter use the same runtime helper underneath.
> 
> Fallback implementation of each Float16 API is using Float.floatToFloat16 and 
> Float.floa16ToFloat routines which are intrinsified at [interpreter 
> level.](https://github.com/openjdk/jdk/blob/master/src/hotspot/share/interpreter/templateInterpreterGenerator.cpp#L488),
>  these interpreter intrinsic invokes same leaf level macro assembly routine 
> flt16_to_flt which is also called though runtime helpers. 
> 
> So it may not add much value to do interpreter vs compiler comparison in 
> these cases.

Ah, yes, you are right, compiler vs interpreter comparison does not help as 
much as I thought, though we should still do it. What we need to do is compare 
interpreter and C2-constant-folded results with the results of the backend 
instructions, but we can also do that with variable values.

-------------

PR Review Comment: https://git.openjdk.org/jdk/pull/22754#discussion_r1888838421

Reply via email to