[PATCH] Fix Reassociate handling of constant in presence of undef float

Sanjay Patel spatel at rotateright.com
Fri Jan 16 08:16:29 PST 2015

In http://reviews.llvm.org/D6993#109628, @joker.eph wrote:

> (even though I'm not convince that sometime you *can* test something. Here for the first test the result is
>   ret float fadd (float undef, float fadd (float undef, float fadd (float fsub (float -0.000000e+00, float undef), float fsub (float -0.000000e+00, float undef))))
> if someone improves Reassociate to fold undef that is equally fine in my opinion and we are just adding some maintenance burden/noise to update test.)

That's true, but:

1. You don't have to fully specify each line of IR in your CHECKs.
2. You didn't create the minimal test case to check your patch. I haven't looked into how this crashes, but this is certainly a smaller test case that still crashes: define float @undef1(float %x) { %y = fsub fast float undef, %x %z = fsub fast float undef, %y ret float %z }



More information about the llvm-commits mailing list