https://bugs.kde.org/show_bug.cgi?id=385409
--- Comment #45 from Vadim Barkov <vbr...@gmail.com> --- (In reply to Julian Seward from comment #44) The new VFENE implementation has no problems. I just want to point you that in my opinion the memchecks' "Conditional jump or move depends on uninitialised value(s)" error for "VFENEZB %v0, %v0, %v0" instruction (which is used in inline ) can be considered as correct error (from some point of view it is not false positive). Let's assume that we have a vector register %v0: 0xaa11223344556677, 0x8800???????????? -- the contents of %v0 "?" sign means that that bytes are uninitialized/undefined for some reason (e.g. because of "vector load with length" VLL instruction) We have "VFENEZBS %v0, %v0, %v0" instruction in code. It searchs for the zero byte in %v0, writes the index of zero byte in byte 7 of %v0 and upgrades condition code (CC, used for branches) The result of execution is: 0x000000000000009, 0x0000000000000000 -- the new contents of %v0 On the one hand this result is memcheck clean (there is issues like "Conditional jump or move depends on uninitialised value(s)") because the CPU works using this algorithm: int index; for(index = 0; index < 16; index++) { if(v0[index] == 0) break; } return index; But on the other hand the S390x specification ("z/Archtecture. Principles of Operation", SA22-7832-10) says that VFENE with ZS flag set (if mnemonic of operation contains the letter "Z") reads all bytes of second operand (in our example from %v0). So we get situation when instruction reads uninitialized bytes. Is the result of this instruction detemined in the terms of valgrind's terminology? That's my question. -- You are receiving this mail because: You are watching all bug changes.