Mercurial > hg > CbC > CbC_llvm
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 } |