[WebAssembly] Don't perform the returned-argument optimization on constants.
[oota-llvm.git] / test / CodeGen / ARM / tls3.ll
1 ; RUN: llc < %s -march=arm -mtriple=arm-linux-gnueabi | \
2 ; RUN:     grep "tbss"
3 ; RUN: llc < %s -march=arm -mtriple=arm-linux-gnueabi | \
4 ; RUN:     FileCheck %s -check-prefix=CHECK -check-prefix=NOEMU
5 ; RUN: llc < %s -emulated-tls -march=arm -mtriple=arm-linux-gnueabi | \
6 ; RUN:     FileCheck %s -check-prefix=CHECK -check-prefix=EMU
7
8 %struct.anon = type { i32, i32 }
9 @teste = internal thread_local global %struct.anon zeroinitializer ; <%struct.anon*> [#uses=1]
10
11 define i32 @main() {
12 entry:
13   %tmp2 = load i32, i32* getelementptr (%struct.anon, %struct.anon* @teste, i32 0, i32 0), align 8 ; <i32> [#uses=1]
14   ret i32 %tmp2
15 }
16
17 ; CHECK-LABEL: main:
18 ; NOEMU-NOT:   __emutls_get_address
19
20 ; NOEMU:       .section .tbss
21 ; NOEMU-LABEL: teste:
22 ; NOEMU-NEXT:  .zero 8
23
24 ; CHECK-NOT: __emutls_t.teste
25
26 ; EMU:       .align 2
27 ; EMU-LABEL: __emutls_v.teste:
28 ; EMU-NEXT:  .long 8
29 ; EMU-NEXT:  .long 4
30 ; EMU-NEXT:  .long 0
31 ; EMU-NEXT:  .long 0
32
33 ; CHECK-NOT: teste:
34 ; CHECK-NOT: __emutls_t.teste