Ulrich Weigand | 7db6918 | 2015-02-18 09:13:27 +0000 | [diff] [blame] | 1 | ; Test general-dynamic TLS access optimizations. |
| 2 | ; |
| 3 | ; If we access the same TLS variable twice, there should only be |
| 4 | ; a single call to __tls_get_offset. |
| 5 | ; |
| 6 | ; RUN: llc < %s -mcpu=z10 -mtriple=s390x-linux-gnu -relocation-model=pic | grep "__tls_get_offset" | count 1 |
| 7 | |
| 8 | @x = thread_local global i32 0 |
| 9 | |
| 10 | define i32 @foo() { |
David Blaikie | a79ac14 | 2015-02-27 21:17:42 +0000 | [diff] [blame] | 11 | %val = load i32, i32* @x |
Ulrich Weigand | 7db6918 | 2015-02-18 09:13:27 +0000 | [diff] [blame] | 12 | %inc = add nsw i32 %val, 1 |
| 13 | store i32 %inc, i32* @x |
| 14 | ret i32 %val |
| 15 | } |