[PATCH] ARM testcase improvements

Renato Golin renato.golin at linaro.org
Tue Oct 8 08:20:48 PDT 2013


On 7 October 2013 23:42, Quentin Colombet <qcolombet at apple.com> wrote:

> 0001:
> LGTM.
>

+1.


0002:
> Unless I am missing the semantic of CHECK-DAG, this seems wrong:
> +;CHECK-DAG: str r0, [sp, #8]
> +;CHECK-DAG: add r0, sp, #8
> How could a str-add sequence with a write-after-read dependency be
> semantically equivalent to a add-str with a read-after-write dependency?
>

If you're referring to the first change, I think it's up to add r0 + str
r2, which could then be:

;CHECK: str r0, [sp, #8]
;CHECK-DAG: add r0, sp, #8
;CHECK-DAG: str r2, [sp, #12]

This also looks dangerous:

+; CHECK-DAG: vld1.32 {[[REG1:d[0-9]+]][0]}, {{\[}}[[BASE]]:32]
+; CHECK-DAG: add [[BASE2:r[0-9]+]], [[BASE]], #4
+; CHECK-DAG: vld1.32 {[[REG1]][1]}, {{\[}}[[BASE2]]:32]

one will define REG1 and the other will use, in this case, it's not
possible for them to be in different order. If CHECK-DAG can deal with that
and impose the correct ordering, than that's fine.

Same here, with SOURCE and ADDR:

+; CHECK-DAG:  vst1.64 {d{{[0-9]+}}, d{{[0-9]+}}}, [r[[SOURCE:[0-9]+]]:128]
+; CHECK-DAG:  add.w r[[ADDR:[0-9]+]], r[[SOURCE]], {{r[0-9]+}}, lsl #2
+; CHECK-DAG:  vld1.32 {[[DREG:d[0-9]+]][], [[DREG2:d[0-9]+]][]},
[r[[ADDR]]:32]

In this case, it looks impossible to have it in any other order...


0003:
> LGTM.
>

+1

cheers,
--renato
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.llvm.org/pipermail/llvm-commits/attachments/20131008/601905d3/attachment.html>


More information about the llvm-commits mailing list