Closed
Description
As pointed out in https://github.com/dotnet/runtime/pull/102903/files#diff-f10507b9e232d4e19690c6a45d1372a35b663df21d62d2fb5011e2d360aa4a4aR49-R59, the LoadVector*NonFaultingSignExtend*
and LoadVector*NonFaultingZeroExtend*
APIs do not have explicit mask argument, which means they can be technically wrapped in ConditionalSelect
. But under the hood, the instruction has Pg/Z
semantics to load the values in vector. As such, if targetReg == falseReg
, it does not play well because the instruction will overwrite the contents of falseReg
and we will not get the desired result.