[llvm] [ARM] Stop gluing ALU nodes to branches / selects (PR #116970)
Sergei Barannikov via llvm-commits
llvm-commits at lists.llvm.org
Wed Nov 20 05:57:28 PST 2024
================
@@ -645,12 +645,13 @@ define i64 @opaque_constant1(i1 %cond, i64 %x) {
; THUMB2-NEXT: push {r7, lr}
; THUMB2-NEXT: ands r12, r0, #1
; THUMB2-NEXT: mov.w lr, #1
-; THUMB2-NEXT: itt ne
-; THUMB2-NEXT: movne.w lr, #65536
+; THUMB2-NEXT: it ne
; THUMB2-NEXT: movne.w r12, #1
+; THUMB2-NEXT: it ne
+; THUMB2-NEXT: movne.w lr, #65536
----------------
s-barannikov wrote:
This is not optimized to a single IT block because the optimization pass does not hoist `mov.w lr, #1` appearing between conditional moves. It only hoists register copies.
https://github.com/llvm/llvm-project/pull/116970
More information about the llvm-commits
mailing list