[llvm] [X86] Extend `combinei64TruncSrlAdd` to handle patterns with `or` and `xor` (PR #128435)
Phoebe Wang via llvm-commits
llvm-commits at lists.llvm.org
Fri Feb 28 05:14:08 PST 2025
=?utf-8?q?Jo=C3=A3o?= Gouveia <jtalonegouveia at gmail.com>,
=?utf-8?q?Jo=C3=A3o?= Gouveia <jtalonegouveia at gmail.com>,
=?utf-8?q?Jo=C3=A3o?= Gouveia <jtalonegouveia at gmail.com>,
=?utf-8?q?Jo=C3=A3o?= Gouveia <jtalonegouveia at gmail.com>,
=?utf-8?q?Jo=C3=A3o?= Gouveia <jtalonegouveia at gmail.com>,
=?utf-8?q?Jo=C3=A3o?= Gouveia <jtalonegouveia at gmail.com>
Message-ID:
In-Reply-To: <llvm.org/llvm/llvm-project/pull/128435 at github.com>
================
@@ -128,6 +128,103 @@ define i32 @test_trunc_add(i64 %x) {
ret i32 %conv
}
+define i32 @test_trunc_sub(i64 %x) {
+; X64-LABEL: test_trunc_sub:
+; X64: # %bb.0:
+; X64-NEXT: shrq $48, %rdi
+; X64-NEXT: addl $65522, %edi # imm = 0xFFF2
+; X64-NEXT: movzwl %di, %eax
+; X64-NEXT: retq
+ %sub = sub i64 %x, 3940649673949184
+ %shr = lshr i64 %sub, 48
----------------
phoebewang wrote:
Let's avoid to use 48 to test for the problem #128353 solving.
https://github.com/llvm/llvm-project/pull/128435
More information about the llvm-commits
mailing list