1 | // REQUIRES: aarch64-registered-target |
2 | |
3 | // RUN: %clang -O3 -target aarch64-linux-eabi %s -S -o- \ |
4 | // RUN: | FileCheck --check-prefix=CHECK-NO --check-prefix=CHECK %s |
5 | // RUN: %clang -O3 -target aarch64-linux-eabi -mfix-cortex-a53-835769 %s -S -o- 2>&1 \ |
6 | // RUN: | FileCheck --check-prefix=CHECK-YES --check-prefix=CHECK %s |
7 | // RUN: %clang -O3 -target aarch64-linux-eabi -mno-fix-cortex-a53-835769 %s -S -o- 2>&1 \ |
8 | // RUN: | FileCheck --check-prefix=CHECK-NO --check-prefix=CHECK %s |
9 | |
10 | // RUN: %clang -O3 -target aarch64-android-eabi %s -S -o- \ |
11 | // RUN: | FileCheck --check-prefix=CHECK-YES --check-prefix=CHECK %s |
12 | // RUN: %clang -O3 -target aarch64-android-eabi -mfix-cortex-a53-835769 %s -S -o- \ |
13 | // RUN: | FileCheck --check-prefix=CHECK-YES --check-prefix=CHECK %s |
14 | // RUN: %clang -O3 -target aarch64-android-eabi -mno-fix-cortex-a53-835769 %s -S -o- \ |
15 | // RUN: | FileCheck --check-prefix=CHECK-NO --check-prefix=CHECK %s |
16 | |
17 | typedef long int64_t; |
18 | |
19 | int64_t f_load_madd_64(int64_t a, int64_t b, int64_t *c) { |
20 | int64_t result = a+b*(*c); |
21 | return result; |
22 | } |
23 | |
24 | // CHECK: ldr |
25 | // CHECK-YES-NEXT: nop |
26 | // CHECK-NO-NOT: nop |
27 | // CHECK-NEXT: madd |
28 | |