Skip to content

cmd/compile: PPC64 folds (MOVWZreg (RLWINM x)) incorrectly in some cases  #67844

@pmur

Description

@pmur

Go version

master

Output of go env in your module/workspace:

GOARCH=ppc64le

What did you do?

Adding the following codegen test to bitRotateAndMask:

        // ppc64x: "MOVWZ", "RLWNM\t[$]1, R[0-9]*, [$]28, [$]3, R"
        io64[3] = uint64(bits.RotateLeft32(io32[0],1) & 0xF000000F)

What did you see happen?

The MOVWZ is missing.

What did you expect to see?

The MOVWZ opcode should be present for certain usages of RLWINM to ensure the upper 32 bits are cleared when the value is expected to be zero-extended.

Metadata

Metadata

Assignees

Labels

FixPendingIssues that have a fix which has not yet been reviewed or submitted.FrozenDueToAgeNeedsFixThe path to resolution is known, but the work has not been done.compiler/runtimeIssues related to the Go compiler and/or runtime.release-blocker

Type

No type

Projects

Status

Done

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions