Skip to content

Arm64/Sve: ConditionalSelect(LoadVector*NonFaultingSignExtend*) codegen #102904

Closed
@kunalspathak

Description

@kunalspathak

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.

Metadata

Metadata

Assignees

Labels

Priority:2Work that is important, but not critical for the releasearea-System.Runtime.Intrinsicsarm-sveWork related to arm64 SVE/SVE2 supportin-prThere is an active PR which will close this issue when it is merged

Type

No type

Projects

No projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions