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 -mrelaxed-simd \ 12 // RUN: | FileCheck %s -check-prefix=RELAXED-SIMD 13 // RUN: %clang -E -dM %s -o - 2>&1 \ 14 // RUN: -target wasm64-unknown-unknown -mrelaxed-simd \ 15 // RUN: | FileCheck %s -check-prefix=RELAXED-SIMD 16 // 17 // RELAXED-SIMD:#define __wasm_relaxed_simd__ 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 -mextended-const \ 111 // RUN: | FileCheck %s -check-prefix=EXTENDED-CONST 112 // RUN: %clang -E -dM %s -o - 2>&1 \ 113 // RUN: -target wasm64-unknown-unknown -mextended-const \ 114 // RUN: | FileCheck %s -check-prefix=EXTENDED-CONST 115 // 116 // EXTENDED-CONST:#define __wasm_extended_const__ 1{{$}} 117 118 // RUN: %clang -E -dM %s -o - 2>&1 \ 119 // RUN: -target wasm32-unknown-unknown -mcpu=mvp \ 120 // RUN: | FileCheck %s -check-prefix=MVP 121 // RUN: %clang -E -dM %s -o - 2>&1 \ 122 // RUN: -target wasm64-unknown-unknown -mcpu=mvp \ 123 // RUN: | FileCheck %s -check-prefix=MVP 124 // 125 // MVP-NOT:#define __wasm_simd128__ 126 // MVP-NOT:#define __wasm_nontrapping_fptoint__ 127 // MVP-NOT:#define __wasm_sign_ext__ 128 // MVP-NOT:#define __wasm_exception_handling__ 129 // MVP-NOT:#define __wasm_bulk_memory__ 130 // MVP-NOT:#define __wasm_atomics__ 131 // MVP-NOT:#define __wasm_mutable_globals__ 132 // MVP-NOT:#define __wasm_multivalue__ 133 // MVP-NOT:#define __wasm_tail_call__ 134 // MVP-NOT:#define __wasm_reference_types__ 135 // MVP-NOT:#define __wasm_extended_const__ 136 137 // RUN: %clang -E -dM %s -o - 2>&1 \ 138 // RUN: -target wasm32-unknown-unknown -mcpu=bleeding-edge \ 139 // RUN: | FileCheck %s -check-prefix=BLEEDING-EDGE 140 // RUN: %clang -E -dM %s -o - 2>&1 \ 141 // RUN: -target wasm64-unknown-unknown -mcpu=bleeding-edge \ 142 // RUN: | FileCheck %s -check-prefix=BLEEDING-EDGE 143 // 144 // BLEEDING-EDGE-DAG:#define __wasm_nontrapping_fptoint__ 1{{$}} 145 // BLEEDING-EDGE-DAG:#define __wasm_sign_ext__ 1{{$}} 146 // BLEEDING-EDGE-DAG:#define __wasm_bulk_memory__ 1{{$}} 147 // BLEEDING-EDGE-DAG:#define __wasm_simd128__ 1{{$}} 148 // BLEEDING-EDGE-DAG:#define __wasm_atomics__ 1{{$}} 149 // BLEEDING-EDGE-DAG:#define __wasm_mutable_globals__ 1{{$}} 150 // BLEEDING-EDGE-DAG:#define __wasm_tail_call__ 1{{$}} 151 // BLEEDING-EDGE-NOT:#define __wasm_unimplemented_simd128__ 1{{$}} 152 // BLEEDING-EDGE-NOT:#define __wasm_exception_handling__ 1{{$}} 153 // BLEEDING-EDGE-NOT:#define __wasm_multivalue__ 1{{$}} 154 // BLEEDING-EDGE-NOT:#define __wasm_reference_types__ 1{{$}} 155 // BLEEDING-EDGE-NOT:#define __wasm_extended_const__ 1{{$}} 156 157 // RUN: %clang -E -dM %s -o - 2>&1 \ 158 // RUN: -target wasm32-unknown-unknown -mcpu=bleeding-edge -mno-simd128 \ 159 // RUN: | FileCheck %s -check-prefix=BLEEDING-EDGE-NO-SIMD128 160 // RUN: %clang -E -dM %s -o - 2>&1 \ 161 // RUN: -target wasm64-unknown-unknown -mcpu=bleeding-edge -mno-simd128 \ 162 // RUN: | FileCheck %s -check-prefix=BLEEDING-EDGE-NO-SIMD128 163 // 164 // BLEEDING-EDGE-NO-SIMD128-NOT:#define __wasm_simd128__ 165