|
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