Subject: r223862 - caused regressions in internal tests

Richard Barton richard.barton at arm.com
Fri Dec 19 10:23:31 PST 2014


Hi Ahmed,

I am going off on hols for two weeks, so please cc Ranjeet in your reply.

This commit broke some of our internal runtime tests on cortex-a9 and
8-A.32, I've created a simple reproducer below:

#include <stdlib.h>

int main() {
    char szNumbers[] = "250068492 7b06af00 1100011011110101010001100000
0x6fffff";
    char * pEnd;
    unsigned long long int ulli1;
    ulli1 = strtoull (szNumbers, &pEnd, 10);
    return 0;
}

$ clang -mcpu=cortex-a9 --target=armv7a-none-eabi -std=c99 -mthumb -O0
-fno-builtin -pedantic -Iinclude -INone test.c -o test

The diff between the assembly produced without this patch and with it is
below

    add.w   r12, r3, #32
    vld1.8  {d16, d17}, [r12]
    vst1.64 {d16, d17}, [r2]
-   add.w   r2, r1, #16
-   add.w   r12, r3, #16
-   vld1.8  {d16, d17}, [r12]
-   vst1.64 {d16, d17}, [r2]
+   vld1.64 {d16, d17}, [r3]!
+   mov r2, r1
+   vst1.64 {d16, d17}, [r2:64]!
    vld1.8  {d16, d17}, [r3]
-   vst1.64 {d16, d17}, [r1]
+   vst1.64 {d16, d17}, [r2]

Could you please investigate?

Thanks,
Ranjeet









More information about the llvm-commits mailing list