Skip to content

GlobalISel selection loses disjoint flag on or #110801

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Closed
arsenm opened this issue Oct 2, 2024 · 1 comment · Fixed by #138851
Closed

GlobalISel selection loses disjoint flag on or #110801

arsenm opened this issue Oct 2, 2024 · 1 comment · Fixed by #138851
Assignees

Comments

@arsenm
Copy link
Contributor

arsenm commented Oct 2, 2024

This test case does not have the disjoint flag on the resulting S_OR_B32:

# RUN: llc -mtriple=amdgcn-- -run-pass=instruction-select -o - %s
---
name:            s_or_i32_disjoint
tracksRegLiveness: true
regBankSelected: true
legalized: true
body:             |
  bb.0:
    liveins: $sgpr0, $sgpr1

    %0:sgpr(s32) = COPY $sgpr0
    %1:sgpr(s32) = COPY $sgpr1
    %2:sgpr(s32) = disjoint G_OR %0, %1
    $sgpr0 = COPY %2
    SI_RETURN_TO_EPILOG implicit $sgpr0

...

@llvmbot
Copy link
Member

llvmbot commented Oct 2, 2024

@llvm/issue-subscribers-backend-amdgpu

Author: Matt Arsenault (arsenm)

This test case does not have the disjoint flag on the resulting S_OR_B32:
# RUN: llc -mtriple=amdgcn-- -run-pass=instruction-select -o - %s
---
name:            s_or_i32_disjoint
tracksRegLiveness: true
regBankSelected: true
legalized: true
body:             |
  bb.0:
    liveins: $sgpr0, $sgpr1

    %0:sgpr(s32) = COPY $sgpr0
    %1:sgpr(s32) = COPY $sgpr1
    %2:sgpr(s32) = disjoint G_OR %0, %1
    $sgpr0 = COPY %2
    SI_RETURN_TO_EPILOG implicit $sgpr0

...

Pierre-vh added a commit that referenced this issue May 7, 2025
We used uint16 for flags but flags now go up to 24 bits, so all flags in bits 16-24 were lost.

Fixes #110801
Pierre-vh added a commit that referenced this issue May 7, 2025
…138851)

We used uint16 for flags but flags now go up to 24 bits, so all flags in bits 16-24 were lost.

Fixes #110801
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

Successfully merging a pull request may close this issue.

4 participants