It has been seen that an application running under Valgrind on IBM Z Systems crashes with this message: Sqrt32Fx4(And32(Sub32(0x4:I32,t178),0x3:I32),LDbe:V128(t28)) vex: the `impossible' happened: s390_isel_vec_expr: cannot reduce tree ... Looking at the source, it seems that Sqrt32Fx4 is not implemented correctly.
Assigning to myself. I have a fix, but before attaching it here, I'd like to finish a test case that covers this.
Created attachment 154601 [details] Patch with fixes and test cases This patch series includes a fix for this issue. It also fixes the implementation of some other vector floating point instructions: * VFMA, VFMS, VFNMA, and VFNMS for 128-bit FP (which were unimplemented) * VFCH and VFCHE (whose implementations were swapped) * VFMIN and VFMAX (which clobbered the condition code) Additionally, the series includes a test case that covers all these issues.
Pushed all of the above.