1 // RUN: %clang -E -dM %s -o - 2>&1 \
2 // RUN: -target wasm32-unknown-unknown -msimd128 \
3 // RUN: | FileCheck %s -check-prefix=SIMD128
4 // RUN: %clang -E -dM %s -o - 2>&1 \
5 // RUN: -target wasm64-unknown-unknown -msimd128 \
6 // RUN: | FileCheck %s -check-prefix=SIMD128
8 // SIMD128:#define __wasm_simd128__ 1{{$}}
10 // RUN: %clang -E -dM %s -o - 2>&1 \
11 // RUN: -target wasm32-unknown-unknown -munimplemented-simd128 \
12 // RUN: | FileCheck %s -check-prefix=SIMD128-UNIMPLEMENTED
13 // RUN: %clang -E -dM %s -o - 2>&1 \
14 // RUN: -target wasm64-unknown-unknown -munimplemented-simd128 \
15 // RUN: | FileCheck %s -check-prefix=SIMD128-UNIMPLEMENTED
17 // SIMD128-UNIMPLEMENTED:#define __wasm_unimplemented_simd128__ 1{{$}}
19 // RUN: %clang -E -dM %s -o - 2>&1 \
20 // RUN: -target wasm32-unknown-unknown -mnontrapping-fptoint \
21 // RUN: | FileCheck %s -check-prefix=NONTRAPPING-FPTOINT
22 // RUN: %clang -E -dM %s -o - 2>&1 \
23 // RUN: -target wasm64-unknown-unknown -mnontrapping-fptoint \
24 // RUN: | FileCheck %s -check-prefix=NONTRAPPING-FPTOINT
26 // NONTRAPPING-FPTOINT:#define __wasm_nontrapping_fptoint__ 1{{$}}
28 // RUN: %clang -E -dM %s -o - 2>&1 \
29 // RUN: -target wasm32-unknown-unknown -msign-ext \
30 // RUN: | FileCheck %s -check-prefix=SIGN-EXT
31 // RUN: %clang -E -dM %s -o - 2>&1 \
32 // RUN: -target wasm64-unknown-unknown -msign-ext \
33 // RUN: | FileCheck %s -check-prefix=SIGN-EXT
35 // SIGN-EXT:#define __wasm_sign_ext__ 1{{$}}
37 // RUN: %clang -E -dM %s -o - 2>&1 \
38 // RUN: -target wasm32-unknown-unknown -mexception-handling \
39 // RUN: | FileCheck %s -check-prefix=EXCEPTION-HANDLING
40 // RUN: %clang -E -dM %s -o - 2>&1 \
41 // RUN: -target wasm64-unknown-unknown -mexception-handling \
42 // RUN: | FileCheck %s -check-prefix=EXCEPTION-HANDLING
44 // EXCEPTION-HANDLING:#define __wasm_exception_handling__ 1{{$}}
46 // RUN: %clang -E -dM %s -o - 2>&1 \
47 // RUN: -target wasm32-unknown-unknown -mbulk-memory \
48 // RUN: | FileCheck %s -check-prefix=BULK-MEMORY
49 // RUN: %clang -E -dM %s -o - 2>&1 \
50 // RUN: -target wasm64-unknown-unknown -mbulk-memory \
51 // RUN: | FileCheck %s -check-prefix=BULK-MEMORY
53 // BULK-MEMORY:#define __wasm_bulk_memory__ 1{{$}}
55 // RUN: %clang -E -dM %s -o - 2>&1 \
56 // RUN: -target wasm32-unknown-unknown -matomics \
57 // RUN: | FileCheck %s -check-prefix=ATOMICS
58 // RUN: %clang -E -dM %s -o - 2>&1 \
59 // RUN: -target wasm64-unknown-unknown -matomics \
60 // RUN: | FileCheck %s -check-prefix=ATOMICS
62 // ATOMICS:#define __wasm_atomics__ 1{{$}}
64 // RUN: %clang -E -dM %s -o - 2>&1 \
65 // RUN: -target wasm32-unknown-unknown -pthread \
66 // RUN: | FileCheck %s -check-prefix=PTHREAD
67 // RUN: %clang -E -dM %s -o - 2>&1 \
68 // RUN: -target wasm64-unknown-unknown -pthread \
69 // RUN: | FileCheck %s -check-prefix=PTHREAD
71 // PTHREAD:#define __wasm_atomics__ 1{{$}}
73 // RUN: %clang -E -dM %s -o - 2>&1 \
74 // RUN: -target wasm32-unknown-unknown -mmutable-globals \
75 // RUN: | FileCheck %s -check-prefix=MUTABLE-GLOBALS
76 // RUN: %clang -E -dM %s -o - 2>&1 \
77 // RUN: -target wasm64-unknown-unknown -mmutable-globals \
78 // RUN: | FileCheck %s -check-prefix=MUTABLE-GLOBALS
80 // MUTABLE-GLOBALS:#define __wasm_mutable_globals__ 1{{$}}
82 // RUN: %clang -E -dM %s -o - 2>&1 \
83 // RUN: -target wasm32-unknown-unknown -mmultivalue \
84 // RUN: | FileCheck %s -check-prefix=MULTIVALUE
85 // RUN: %clang -E -dM %s -o - 2>&1 \
86 // RUN: -target wasm64-unknown-unknown -mmultivalue \
87 // RUN: | FileCheck %s -check-prefix=MULTIVALUE
89 // MULTIVALUE:#define __wasm_multivalue__ 1{{$}}
91 // RUN: %clang -E -dM %s -o - 2>&1 \
92 // RUN: -target wasm32-unknown-unknown -mtail-call \
93 // RUN: | FileCheck %s -check-prefix=TAIL-CALL
94 // RUN: %clang -E -dM %s -o - 2>&1 \
95 // RUN: -target wasm64-unknown-unknown -mtail-call \
96 // RUN: | FileCheck %s -check-prefix=TAIL-CALL
98 // TAIL-CALL:#define __wasm_tail_call__ 1{{$}}
100 // RUN: %clang -E -dM %s -o - 2>&1 \
101 // RUN: -target wasm32-unknown-unknown -mcpu=mvp \
102 // RUN: | FileCheck %s -check-prefix=MVP
103 // RUN: %clang -E -dM %s -o - 2>&1 \
104 // RUN: -target wasm64-unknown-unknown -mcpu=mvp \
105 // RUN: | FileCheck %s -check-prefix=MVP
107 // MVP-NOT:#define __wasm_simd128__
108 // MVP-NOT:#define __wasm_unimplemented_simd128__
109 // MVP-NOT:#define __wasm_nontrapping_fptoint__
110 // MVP-NOT:#define __wasm_sign_ext__
111 // MVP-NOT:#define __wasm_exception_handling__
112 // MVP-NOT:#define __wasm_bulk_memory__
113 // MVP-NOT:#define __wasm_atomics__
114 // MVP-NOT:#define __wasm_mutable_globals__
115 // MVP-NOT:#define __wasm_multivalue__
116 // MVP-NOT:#define __wasm_tail_call__
118 // RUN: %clang -E -dM %s -o - 2>&1 \
119 // RUN: -target wasm32-unknown-unknown -mcpu=bleeding-edge \
120 // RUN: | FileCheck %s -check-prefix=BLEEDING-EDGE
121 // RUN: %clang -E -dM %s -o - 2>&1 \
122 // RUN: -target wasm64-unknown-unknown -mcpu=bleeding-edge \
123 // RUN: | FileCheck %s -check-prefix=BLEEDING-EDGE
125 // BLEEDING-EDGE-DAG:#define __wasm_nontrapping_fptoint__ 1{{$}}
126 // BLEEDING-EDGE-DAG:#define __wasm_sign_ext__ 1{{$}}
127 // BLEEDING-EDGE-DAG:#define __wasm_simd128__ 1{{$}}
128 // BLEEDING-EDGE-DAG:#define __wasm_atomics__ 1{{$}}
129 // BLEEDING-EDGE-DAG:#define __wasm_mutable_globals__ 1{{$}}
130 // BLEEDING-EDGE-NOT:#define __wasm_unimplemented_simd128__ 1{{$}}
131 // BLEEDING-EDGE-NOT:#define __wasm_multivalue__ 1{{$}}
132 // BLEEDING-EDGE-NOT:#define __wasm_tail_call__ 1{{$}}
134 // RUN: %clang -E -dM %s -o - 2>&1 \
135 // RUN: -target wasm32-unknown-unknown -mcpu=bleeding-edge -mno-simd128 \
136 // RUN: | FileCheck %s -check-prefix=BLEEDING-EDGE-NO-SIMD128
137 // RUN: %clang -E -dM %s -o - 2>&1 \
138 // RUN: -target wasm64-unknown-unknown -mcpu=bleeding-edge -mno-simd128 \
139 // RUN: | FileCheck %s -check-prefix=BLEEDING-EDGE-NO-SIMD128
141 // BLEEDING-EDGE-NO-SIMD128-NOT:#define __wasm_simd128__