|
1 | 1 | ; RUN: opt < %s -passes=tsan -S | FileCheck %s |
2 | 2 | ; RUN: opt < %s -passes=tsan -S -mtriple=s390x-unknown-linux | FileCheck --check-prefix=EXT %s |
3 | 3 | ; RUN: opt < %s -passes=tsan -S -mtriple=mips-linux-gnu | FileCheck --check-prefix=MIPS_EXT %s |
4 | | -; REQUIRES: x86-registered-target, systemz-registered-target, mips-registered-target |
| 4 | +; RUN: opt < %s -passes=tsan -S -mtriple=loongarch64-unknown-linux-gnu | FileCheck --check-prefix=LA_EXT %s |
| 5 | +; REQUIRES: x86-registered-target, systemz-registered-target, mips-registered-target, loongarch-registered-target |
5 | 6 | ; Check that atomic memory operations are converted to calls into ThreadSanitizer runtime. |
6 | 7 | target datalayout = "e-p:64:64:64-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:128:128-a0:0:64-s0:64:64-f80:128:128-n8:16:32:64-S128" |
7 | 8 |
|
@@ -2102,38 +2103,47 @@ entry: |
2102 | 2103 | ; CHECK: declare void @__tsan_atomic32_store(ptr, i32, i32) |
2103 | 2104 | ; EXT: declare void @__tsan_atomic32_store(ptr, i32 signext, i32 signext) |
2104 | 2105 | ; MIPS_EXT: declare void @__tsan_atomic32_store(ptr, i32 signext, i32 signext) |
| 2106 | +; LA_EXT: declare void @__tsan_atomic32_store(ptr, i32 signext, i32 signext) |
2105 | 2107 |
|
2106 | 2108 | ; CHECK: declare i32 @__tsan_atomic32_compare_exchange_val(ptr, i32, i32, i32, i32) |
2107 | 2109 | ; EXT: declare signext i32 @__tsan_atomic32_compare_exchange_val(ptr, i32 signext, i32 signext, i32 signext, i32 signext) |
2108 | 2110 | ; MIPS_EXT: declare i32 @__tsan_atomic32_compare_exchange_val(ptr, i32 signext, i32 signext, i32 signext, i32 signext) |
| 2111 | +; LA_EXT: declare signext i32 @__tsan_atomic32_compare_exchange_val(ptr, i32 signext, i32 signext, i32 signext, i32 signext) |
2109 | 2112 |
|
2110 | 2113 | ; CHECK: declare i64 @__tsan_atomic64_load(ptr, i32) |
2111 | 2114 | ; EXT: declare i64 @__tsan_atomic64_load(ptr, i32 signext) |
2112 | 2115 | ; MIPS_EXT: declare i64 @__tsan_atomic64_load(ptr, i32 signext) |
| 2116 | +; LA_EXT: declare i64 @__tsan_atomic64_load(ptr, i32 signext) |
2113 | 2117 |
|
2114 | 2118 | ; CHECK: declare void @__tsan_atomic64_store(ptr, i64, i32) |
2115 | 2119 | ; EXT: declare void @__tsan_atomic64_store(ptr, i64, i32 signext) |
2116 | 2120 | ; MIPS_EXT: declare void @__tsan_atomic64_store(ptr, i64, i32 signext) |
| 2121 | +; LA_EXT: declare void @__tsan_atomic64_store(ptr, i64, i32 signext) |
2117 | 2122 |
|
2118 | 2123 | ; CHECK: declare i64 @__tsan_atomic64_fetch_add(ptr, i64, i32) |
2119 | 2124 | ; EXT: declare i64 @__tsan_atomic64_fetch_add(ptr, i64, i32 signext) |
2120 | 2125 | ; MIPS_EXT: declare i64 @__tsan_atomic64_fetch_add(ptr, i64, i32 signext) |
| 2126 | +; LA_EXT: declare i64 @__tsan_atomic64_fetch_add(ptr, i64, i32 signext) |
2121 | 2127 |
|
2122 | 2128 | ; CHECK: declare i64 @__tsan_atomic64_compare_exchange_val(ptr, i64, i64, i32, i32) |
2123 | 2129 | ; EXT: declare i64 @__tsan_atomic64_compare_exchange_val(ptr, i64, i64, i32 signext, i32 signext) |
2124 | 2130 | ; MIPS_EXT: declare i64 @__tsan_atomic64_compare_exchange_val(ptr, i64, i64, i32 signext, i32 signext) |
| 2131 | +; LA_EXT: declare i64 @__tsan_atomic64_compare_exchange_val(ptr, i64, i64, i32 signext, i32 signext) |
2125 | 2132 |
|
2126 | 2133 | ; CHECK: declare void @__tsan_atomic_thread_fence(i32) |
2127 | 2134 | ; EXT: declare void @__tsan_atomic_thread_fence(i32 signext) |
2128 | 2135 | ; MIPS_EXT: declare void @__tsan_atomic_thread_fence(i32 signext) |
| 2136 | +; LA_EXT: declare void @__tsan_atomic_thread_fence(i32 signext) |
2129 | 2137 |
|
2130 | 2138 | ; CHECK: declare void @__tsan_atomic_signal_fence(i32) |
2131 | 2139 | ; EXT: declare void @__tsan_atomic_signal_fence(i32 signext) |
2132 | 2140 | ; MIPS_EXT: declare void @__tsan_atomic_signal_fence(i32 signext) |
| 2141 | +; LA_EXT: declare void @__tsan_atomic_signal_fence(i32 signext) |
2133 | 2142 |
|
2134 | 2143 | ; CHECK: declare ptr @__tsan_memset(ptr, i32, i64) |
2135 | 2144 | ; EXT: declare ptr @__tsan_memset(ptr, i32 signext, i64) |
2136 | 2145 | ; MIPS_EXT: declare ptr @__tsan_memset(ptr, i32 signext, i64) |
| 2146 | +; LA_EXT: declare ptr @__tsan_memset(ptr, i32 signext, i64) |
2137 | 2147 |
|
2138 | 2148 | !llvm.module.flags = !{!0, !1, !2} |
2139 | 2149 | !llvm.dbg.cu = !{!8} |
|
0 commit comments