[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