1 // REQUIRES: arm-registered-target
2 // RUN: %clang -target arm-none-eabi -S -o - %s | FileCheck -check-prefix=CHECK-EABI %s
3 // RUN: %clang -target arm-none-eabi -S -meabi gnu -o - %s | FileCheck -check-prefix=CHECK-GNUEABI %s
4 // RUN: %clang -target arm-none-eabihf -S -o - %s | FileCheck -check-prefix=CHECK-EABI %s
5 // RUN: %clang -target arm-none-eabihf -S -meabi gnu -o - %s | FileCheck -check-prefix=CHECK-GNUEABI %s
6 // RUN: %clang -target arm-none-gnueabi -S -o - %s | FileCheck -check-prefix=CHECK-GNUEABI %s
7 // RUN: %clang -target arm-none-gnueabi -S -meabi 5 -o - %s | FileCheck -check-prefix=CHECK-EABI %s
8 // RUN: %clang -target arm-none-gnueabihf -S -o - %s | FileCheck -check-prefix=CHECK-GNUEABI %s
9 // RUN: %clang -target arm-none-gnueabihf -S -meabi 5 -o - %s | FileCheck -check-prefix=CHECK-EABI %s
10
11 struct my_s {
12 unsigned long a[18];
13 };
14
15 // CHECK-LABEL: foo
16 // CHECK-EABI: bl __aeabi_memcpy4
17 // CHECK-GNUEABI: bl memcpy
foo(unsigned long * t)18 void foo(unsigned long *t) {
19 *(struct my_s *)t = *((struct my_s *)(1UL));
20 }
21