blob: a21191246c2311f0e6981e88f24aa44953743713 [file] [log] [blame]
Simon Pilgrim49f9ba32017-09-05 13:40:29 +00001; NOTE: Assertions have been autogenerated by utils/update_llc_test_checks.py
2; RUN: llc < %s -mtriple=i686-apple-macosx10.13.0 | FileCheck %s --check-prefix=X86
3; RUN: llc < %s -mtriple=x86_64-apple-macosx10.13.0 | FileCheck %s --check-prefix=X64
4
5define void @thread_selfcounts() noimplicitfloat noredzone nounwind {
6; X86-LABEL: thread_selfcounts:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +00007; X86: ## %bb.0: ## %entry
Simon Pilgrim49f9ba32017-09-05 13:40:29 +00008; X86-NEXT: subl $44, %esp
9; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
10; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
11; X86-NEXT: movl %ecx, {{[0-9]+}}(%esp)
12; X86-NEXT: movl %eax, (%esp)
13; X86-NEXT: movl {{[0-9]+}}(%esp), %eax
14; X86-NEXT: movl {{[0-9]+}}(%esp), %ecx
15; X86-NEXT: movl %ecx, {{[0-9]+}}(%esp)
16; X86-NEXT: movl %eax, {{[0-9]+}}(%esp)
Tim Northover271d3d22018-04-13 22:25:20 +000017; X86-NEXT: ud2
Simon Pilgrim49f9ba32017-09-05 13:40:29 +000018; X86-NEXT: ## -- End function
19;
20; X64-LABEL: thread_selfcounts:
Francis Visoiu Mistrih25528d62017-12-04 17:18:51 +000021; X64: ## %bb.0: ## %entry
Simon Pilgrim49f9ba32017-09-05 13:40:29 +000022; X64-NEXT: subq $40, %rsp
23; X64-NEXT: movq {{[0-9]+}}(%rsp), %rax
24; X64-NEXT: movq {{[0-9]+}}(%rsp), %rcx
25; X64-NEXT: movq %rax, (%rsp)
26; X64-NEXT: movq %rcx, {{[0-9]+}}(%rsp)
Tim Northover271d3d22018-04-13 22:25:20 +000027; X64-NEXT: ud2
Simon Pilgrim49f9ba32017-09-05 13:40:29 +000028; X64-NEXT: ## -- End function
29entry:
30 %counts = alloca [2 x i64], align 16
31 %thread_counts = alloca [3 x i64], align 16
32 %arraydecay = getelementptr inbounds [3 x i64], [3 x i64]* %thread_counts, i64 0, i64 0
33 %0 = load i64, i64* %arraydecay, align 16
34 %arrayidx3 = getelementptr inbounds [2 x i64], [2 x i64]* %counts, i64 0, i64 0
35 store i64 %0, i64* %arrayidx3, align 16
36 %arrayidx6 = getelementptr inbounds [3 x i64], [3 x i64]* %thread_counts, i64 0, i64 1
37 %1 = load i64, i64* %arrayidx6, align 8
38 %arrayidx10 = getelementptr inbounds [2 x i64], [2 x i64]* %counts, i64 0, i64 1
39 store i64 %1, i64* %arrayidx10, align 8
40 unreachable
41}
42