[PATCH] D90162: [llvm][AArch64] Prevent spurious zero extension.
Francesco Petrogalli via Phabricator via llvm-commits
llvm-commits at lists.llvm.org
Thu Oct 29 11:13:04 PDT 2020
fpetrogalli added inline comments.
================
Comment at: llvm/test/CodeGen/ARM/select-imm.ll:221
; ARMT2-LABEL: t9:
-; ARMT2: bl f
-; ARMT2: uxtb r0, r4
-; ARMT2: cmp r0, r0
-; ARMT2: add r1, r4, #1
-; ARMT2: mov r2, r0
-; ARMT2: add r2, r2, #1
-; ARMT2: add r1, r1, #1
-; ARMT2: uxtb r3, r2
-; ARMT2: cmp r3, r0
+; ARMT2: .save {r4, lr}
+; ARMT2: push {r4, lr}
----------------
For reference, this test has changed as follows:
```
; OLD NEW
; .save {r4, lr} .save {r4, lr}
; push {r4, lr} push {r4, lr}
; ldrsb r4, [r0] ldrb r4, [r0]
; mov r0, #1 mov r0, #1
; bl f bl f
; uxtb r0, r4 cmp r4, r4
; cmp r0, r0 popne {r4, pc}
; popne {r4, pc} .LBB0_1:
; .LBB0_1: sxtb r0, r4
; add r1, r4, #1 add r0, r0, #1
; mov r2, r0 mov r1, r4
; .LBB0_2: .LBB0_2:
; add r2, r2, #1 add r1, r1, #1
; add r1, r1, #1 add r0, r0, #1
; uxtb r3, r2 uxtb r2, r1
; cmp r3, r0 cmp r2, r4
; blt .LBB0_2 blt .LBB0_2
; pop {r4, pc} pop {r4, pc}
```
================
Comment at: llvm/test/CodeGen/ARM/select-imm.ll:240
; THUMB1-LABEL: t9:
+; THUMB1: .save {r4, lr}
----------------
For reference, this output has changed as follows:
```
; OLD NEW
; .save {r4, lr} .save {r4, lr}
; push {r4, lr} push {r4, lr}
; movs r2, #0 ldrb r4, [r0]
; rsbs r1, r2, #0 movs r0, #1
; adcs r1, r2 bl f
; ldrb r4, [r0] cmp r4, r4
; mov r0, r1 bne .LBB0_3
; bl f sxtb r0, r4
; sxtb r1, r4 adds r0, r0, #1
; uxtb r0, r1 mov r1, r4
; cmp r0, r0 .LBB0_2:
; bne .LBB0_3 adds r0, r0, #1
; adds r1, r1, #1 adds r1, r1, #1
; mov r2, r0 uxtb r2, r1
; .LBB0_2: cmp r2, r4
; adds r1, r1, #1 blt .LBB0_2
; adds r2, r2, #1 .LBB0_3:
; uxtb r3, r2 pop {r4, pc}
; cmp r3, r0
; blt .LBB0_2
; .LBB0_3:
; pop {r4, pc}
```
================
Comment at: llvm/test/CodeGen/ARM/select-imm.ll:260
; THUMB2-LABEL: t9:
+; THUMB2: .save {r4, lr}
----------------
For reference, this has changed as follows:
```
; OLD NEW
; .save {r4, lr} .save {r4, lr}
; push {r4, lr} push {r4, lr}
; ldrsb.w r4, [r0] ldrb r4, [r0]
; movs r0, #1 movs r0, #1
; bl f bl f
; uxtb r0, r4 cmp r4, r4
; cmp r0, r0 it ne
; it ne popne {r4, pc}
; popne {r4, pc} .LBB0_1:
; .LBB0_1: sxtb r0, r4
; adds r1, r4, #1 adds r0, #1
; mov r2, r0 mov r1, r4
; .LBB0_2: .LBB0_2:
; adds r2, #1 adds r1, #1
; adds r1, #1 adds r0, #1
; uxtb r3, r2 uxtb r2, r1
; cmp r3, r0 cmp r2, r4
; blt .LBB0_2 blt .LBB0_2
; pop {r4, pc} pop {r4, pc}
```
Repository:
rG LLVM Github Monorepo
CHANGES SINCE LAST ACTION
https://reviews.llvm.org/D90162/new/
https://reviews.llvm.org/D90162
More information about the llvm-commits
mailing list