• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
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
7 //
8 // SIMD128:#define __wasm_simd128__ 1{{$}}
9 
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
16 //
17 // SIMD128-UNIMPLEMENTED:#define __wasm_unimplemented_simd128__ 1{{$}}
18 
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
25 //
26 // NONTRAPPING-FPTOINT:#define __wasm_nontrapping_fptoint__ 1{{$}}
27 
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
34 //
35 // SIGN-EXT:#define __wasm_sign_ext__ 1{{$}}
36 
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
43 //
44 // EXCEPTION-HANDLING:#define __wasm_exception_handling__ 1{{$}}
45 
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
52 //
53 // BULK-MEMORY:#define __wasm_bulk_memory__ 1{{$}}
54 
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
61 //
62 // ATOMICS:#define __wasm_atomics__ 1{{$}}
63 
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
70 //
71 // PTHREAD:#define __wasm_atomics__ 1{{$}}
72 
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
79 //
80 // MUTABLE-GLOBALS:#define __wasm_mutable_globals__ 1{{$}}
81 
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
88 //
89 // MULTIVALUE:#define __wasm_multivalue__ 1{{$}}
90 
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
97 //
98 // TAIL-CALL:#define __wasm_tail_call__ 1{{$}}
99 //
100 // RUN: %clang -E -dM %s -o - 2>&1 \
101 // RUN:     -target wasm32-unknown-unknown -mreference-types \
102 // RUN:   | FileCheck %s -check-prefix=REFERENCE-TYPES
103 // RUN: %clang -E -dM %s -o - 2>&1 \
104 // RUN:     -target wasm64-unknown-unknown -mreference-types \
105 // RUN:   | FileCheck %s -check-prefix=REFERENCE-TYPES
106 //
107 // REFERENCE-TYPES:#define __wasm_reference_types__ 1{{$}}
108 
109 // RUN: %clang -E -dM %s -o - 2>&1 \
110 // RUN:     -target wasm32-unknown-unknown -mcpu=mvp \
111 // RUN:   | FileCheck %s -check-prefix=MVP
112 // RUN: %clang -E -dM %s -o - 2>&1 \
113 // RUN:     -target wasm64-unknown-unknown -mcpu=mvp \
114 // RUN:   | FileCheck %s -check-prefix=MVP
115 //
116 // MVP-NOT:#define __wasm_simd128__
117 // MVP-NOT:#define __wasm_unimplemented_simd128__
118 // MVP-NOT:#define __wasm_nontrapping_fptoint__
119 // MVP-NOT:#define __wasm_sign_ext__
120 // MVP-NOT:#define __wasm_exception_handling__
121 // MVP-NOT:#define __wasm_bulk_memory__
122 // MVP-NOT:#define __wasm_atomics__
123 // MVP-NOT:#define __wasm_mutable_globals__
124 // MVP-NOT:#define __wasm_multivalue__
125 // MVP-NOT:#define __wasm_tail_call__
126 // MVP-NOT:#define __wasm_reference_types__
127 
128 // RUN: %clang -E -dM %s -o - 2>&1 \
129 // RUN:     -target wasm32-unknown-unknown -mcpu=bleeding-edge \
130 // RUN:   | FileCheck %s -check-prefix=BLEEDING-EDGE
131 // RUN: %clang -E -dM %s -o - 2>&1 \
132 // RUN:     -target wasm64-unknown-unknown -mcpu=bleeding-edge \
133 // RUN:   | FileCheck %s -check-prefix=BLEEDING-EDGE
134 //
135 // BLEEDING-EDGE-DAG:#define __wasm_nontrapping_fptoint__ 1{{$}}
136 // BLEEDING-EDGE-DAG:#define __wasm_sign_ext__ 1{{$}}
137 // BLEEDING-EDGE-DAG:#define __wasm_bulk_memory__ 1{{$}}
138 // BLEEDING-EDGE-DAG:#define __wasm_simd128__ 1{{$}}
139 // BLEEDING-EDGE-DAG:#define __wasm_atomics__ 1{{$}}
140 // BLEEDING-EDGE-DAG:#define __wasm_mutable_globals__ 1{{$}}
141 // BLEEDING-EDGE-DAG:#define __wasm_tail_call__ 1{{$}}
142 // BLEEDING-EDGE-NOT:#define __wasm_unimplemented_simd128__ 1{{$}}
143 // BLEEDING-EDGE-NOT:#define __wasm_exception_handling__ 1{{$}}
144 // BLEEDING-EDGE-NOT:#define __wasm_multivalue__ 1{{$}}
145 // BLEEDING-EDGE-NOT:#define __wasm_reference_types__ 1{{$}}
146 
147 // RUN: %clang -E -dM %s -o - 2>&1 \
148 // RUN:     -target wasm32-unknown-unknown -mcpu=bleeding-edge -mno-simd128 \
149 // RUN:   | FileCheck %s -check-prefix=BLEEDING-EDGE-NO-SIMD128
150 // RUN: %clang -E -dM %s -o - 2>&1 \
151 // RUN:     -target wasm64-unknown-unknown -mcpu=bleeding-edge -mno-simd128 \
152 // RUN:   | FileCheck %s -check-prefix=BLEEDING-EDGE-NO-SIMD128
153 //
154 // BLEEDING-EDGE-NO-SIMD128-NOT:#define __wasm_simd128__
155