[llvm] [ARM] Stop gluing ALU nodes to branches / selects (PR #116970)

Martin Storsjö via llvm-commits llvm-commits at lists.llvm.org
Tue Dec 3 01:58:03 PST 2024


mstorsjo wrote:

I managed to pinpoint the faulting change; instead of trying to split the source C file (which turned out to be quite annoying here), I diffed the output assembly and selectively applied parts of the differences to the output assembly; the faulty change is the one in `set_protection`, with the following output diff:
```diff
@@ -11514,18 +11515,18 @@
 .LBB59_6:                               @ %sw.bb5.i
        movs    r6, #29
        movs    r5, #13
-       ands    r4, lr, #16777216
-       it      eq                       
-       moveq   r6, #23                  
+       lsls.w  r4, lr, #7
+       it      pl
+       movpl   r6, #23
        it      eq
        moveq   r5, #7
        b       .LBB59_11
 .LBB59_7:                               @ %sw.bb1.i
        movs    r6, #25
        movs    r5, #9
-       ands    r4, lr, #16777216
-       it      eq
-       moveq   r6, #19
+       lsls.w  r4, lr, #7
+       it      pl                       
+       movpl   r6, #19 
        it      eq
        moveq   r5, #3
        b       .LBB59_11
```

https://github.com/llvm/llvm-project/pull/116970


More information about the llvm-commits mailing list