Skip to content

Fix instruction order issue in scalarizer #5001

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

Merged
merged 1 commit into from
Feb 9, 2023

Conversation

python3kgae
Copy link
Contributor

When scalarize shuffle inst which has extract element as the input element, create clone before the shuffle instead of after.

Because later when replace the shuffle, new vector will be inserted before the shuffle. The elt will be after its use if inserted before the shuffle earlier.

When scalarize shuffle inst which has extract element as the input element,
create clone before the shuffle instead of after.

Because later when replace the shuffle, new vector will be inserted before the shuffle.
The elt will be after its use if inserted before the shuffle earlier.
@python3kgae python3kgae requested a review from tex3d February 8, 2023 18:28
@AppVeyorBot
Copy link

@python3kgae python3kgae merged commit b3dedc9 into microsoft:main Feb 9, 2023
@python3kgae python3kgae deleted the scalarizer_reorder branch February 9, 2023 18:10
pow2clk pushed a commit that referenced this pull request Feb 27, 2023
When scalarize shuffle inst which has extract element as the input element,
create clone before the shuffle instead of after.

Because later when replace the shuffle, new vector will be inserted before the shuffle.
The elt define will be after its use if inserted before the shuffle earlier.
Like
%[[B:.+]] = load <2 x float>, <2 x float>* %b, align 4 %[[X:.+]] = insertelement <4 x float> undef, float %[[BX0]], i32 0
%[[Y:.+]] = insertelement <4 x float> %[[X]], float %[[BY0]], i32 1
%[[Z:.+]] = insertelement <4 x float> %[[Y]], float %[[BX1]], i32 2
%[[W:.+]] = insertelement <4 x float> %[[Z]], float %[[BY1]], i32 3 %[[BX0:.+]] = extractelement <2 x float> %[[B]], i32 0
%[[BY0:.+]] = extractelement <2 x float> %[[B]], i32 1
%[[BX1:.+]] = extractelement <2 x float> %[[B]], i32 0
%[[BY1:.+]] = extractelement <2 x float> %[[B]], i32 1

(cherry picked from commit b3dedc9)
pow2clk pushed a commit that referenced this pull request Feb 27, 2023
Merge relevant changes into release 1.7.2212

7ce4986 Fix opt.exe external lib loading (#5049)
8f4d1f4 PIX: DxcPixDxilInstructionOffsets should operate on libs (#5046)
0795b94 Fix AppVeyor Linux tests failing loading dxil.so (#5024)
6d3574a Remove SO version from unix binaries (#5010)
6d480fd Allow libdxcompiler.so and dxc to find libdxil.so (#5004)
d751bd8 Correct WinAdapter path assumptions in public headers (#5003)
484f1b0 Fix instruction order issue in scalarizer (#5001)
d9d83d0 Fix two issues found in our internal build (#5002)
c8603e4 Added a workaround for PDBs with empty defines. (#4945)
073d860 [bug] Fix memory leak in dxil validator (#4966)
87fc5b5 PIX: Symbol manager: don't allow static members to contribute to member offsets (#4952)
8588ecb Turn off structurize-returns when cleanup blocks are present. (#4927)
bac7aa7 build: disable LLVM_ENABLE_TERMINFO by default. (#4908)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants