• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1; 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:
7; X86:       ## %bb.0: ## %entry
8; 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)
17; X86-NEXT:    ud2
18; X86-NEXT:    ## -- End function
19;
20; X64-LABEL: thread_selfcounts:
21; X64:       ## %bb.0: ## %entry
22; 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)
27; X64-NEXT:    ud2
28; 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
43