comparison clang/test/CodeGen/fp-atomic-ops.c @ 207:2e18cbf3894f

LLVM12
author Shinji KONO <kono@ie.u-ryukyu.ac.jp>
date Tue, 08 Jun 2021 06:07:14 +0900
parents
children c4bab56944e8
comparison
equal deleted inserted replaced
173:0572611fdcc8 207:2e18cbf3894f
1 // RUN: %clang_cc1 %s -emit-llvm -DDOUBLE -O0 -o - -triple=amdgcn-amd-amdhsa \
2 // RUN: | opt -instnamer -S | FileCheck -check-prefixes=FLOAT,DOUBLE %s
3
4 // RUN: %clang_cc1 %s -emit-llvm -DDOUBLE -O0 -o - -triple=aarch64-linux-gnu \
5 // RUN: | opt -instnamer -S | FileCheck -check-prefixes=FLOAT,DOUBLE %s
6
7 // RUN: %clang_cc1 %s -emit-llvm -O0 -o - -triple=armv8-apple-ios7.0 \
8 // RUN: | opt -instnamer -S | FileCheck -check-prefixes=FLOAT %s
9
10 // RUN: %clang_cc1 %s -emit-llvm -DDOUBLE -O0 -o - -triple=hexagon \
11 // RUN: | opt -instnamer -S | FileCheck -check-prefixes=FLOAT,DOUBLE %s
12
13 // RUN: %clang_cc1 %s -emit-llvm -DDOUBLE -O0 -o - -triple=mips64-mti-linux-gnu \
14 // RUN: | opt -instnamer -S | FileCheck -check-prefixes=FLOAT,DOUBLE %s
15
16 // RUN: %clang_cc1 %s -emit-llvm -O0 -o - -triple=i686-linux-gnu \
17 // RUN: | opt -instnamer -S | FileCheck -check-prefixes=FLOAT %s
18
19 // RUN: %clang_cc1 %s -emit-llvm -DDOUBLE -O0 -o - -triple=x86_64-linux-gnu \
20 // RUN: | opt -instnamer -S | FileCheck -check-prefixes=FLOAT,DOUBLE %s
21
22 typedef enum memory_order {
23 memory_order_relaxed = __ATOMIC_RELAXED,
24 memory_order_acquire = __ATOMIC_ACQUIRE,
25 memory_order_release = __ATOMIC_RELEASE,
26 memory_order_acq_rel = __ATOMIC_ACQ_REL,
27 memory_order_seq_cst = __ATOMIC_SEQ_CST
28 } memory_order;
29
30 void test(float *f, float ff, double *d, double dd) {
31 // FLOAT: atomicrmw fadd float* {{.*}} monotonic
32 __atomic_fetch_add(f, ff, memory_order_relaxed);
33
34 // FLOAT: atomicrmw fsub float* {{.*}} monotonic
35 __atomic_fetch_sub(f, ff, memory_order_relaxed);
36
37 #ifdef DOUBLE
38 // DOUBLE: atomicrmw fadd double* {{.*}} monotonic
39 __atomic_fetch_add(d, dd, memory_order_relaxed);
40
41 // DOUBLE: atomicrmw fsub double* {{.*}} monotonic
42 __atomic_fetch_sub(d, dd, memory_order_relaxed);
43 #endif
44 }