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