Skip to content

Instantly share code, notes, and snippets.

@tmcdonell
Created January 3, 2018 00:14
Show Gist options
  • Save tmcdonell/bb48210d30fd26905f631c1454e71b59 to your computer and use it in GitHub Desktop.
Save tmcdonell/bb48210d30fd26905f631c1454e71b59 to your computer and use it in GitHub Desktop.
; ModuleID = 'map_1bf1a791bb25369d'
target datalayout = "e-m:o-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-apple-darwin15.6.0"
; Function Attrs: nounwind
define void @map_1bf1a791bb25369d(i64 %ix.start, i64 %ix.end, double* noalias nocapture %out.ad0, double* noalias nocapture readonly %fv0.ad0) local_unnamed_addr #0 {
entry:
%0 = icmp slt i64 %ix.start, %ix.end
br i1 %0, label %while1.top.preheader, label %while1.exit
while1.top.preheader: ; preds = %entry
br label %while1.top
while1.top: ; preds = %while1.top.preheader, %while1.top
%1 = phi i64 [ %10, %while1.top ], [ %ix.start, %while1.top.preheader ]
%2 = getelementptr double, double* %fv0.ad0, i64 %1
%3 = load double, double* %2, align 8
%4 = fdiv fast double 1.000000e+00, %3
%5 = fmul fast double %4, %4
%6 = fsub fast double -0.000000e+00, %5
%7 = tail call double @tanh(double %6) #1
%8 = fadd fast double %4, %7
%9 = getelementptr double, double* %out.ad0, i64 %1
store double %8, double* %9, align 8
%10 = add nsw i64 %1, 1
%exitcond = icmp eq i64 %10, %ix.end
br i1 %exitcond, label %while1.exit, label %while1.top
while1.exit: ; preds = %while1.top, %entry
ret void
}
; Function Attrs: nounwind readonly
declare double @tanh(double) local_unnamed_addr #1
attributes #0 = { nounwind }
attributes #1 = { nounwind readonly }
.section __TEXT,__text,regular,pure_instructions
.macosx_version_min 10, 11
.section __TEXT,__literal8,8byte_literals
.p2align 3
LCPI0_0:
.quad 4607182418800017408
.section __TEXT,__literal16,16byte_literals
.p2align 4
LCPI0_1:
.quad -9223372036854775808
.quad -9223372036854775808
.section __TEXT,__text,regular,pure_instructions
.globl _map_1bf1a791bb25369d
.p2align 4, 0x90
_map_1bf1a791bb25369d:
pushq %r15
pushq %r14
pushq %rbx
subq $16, %rsp
movq %rsi, %r14
cmpq %r14, %rdi
jge LBB0_3
subq %rdi, %r14
leaq (%rdx,%rdi,8), %r15
leaq (%rcx,%rdi,8), %rbx
.p2align 4, 0x90
LBB0_2:
vmovsd LCPI0_0(%rip), %xmm0
vdivsd (%rbx), %xmm0, %xmm0
vmovsd %xmm0, 8(%rsp)
vmulsd %xmm0, %xmm0, %xmm0
vxorpd LCPI0_1(%rip), %xmm0, %xmm0
callq _tanh
vaddsd 8(%rsp), %xmm0, %xmm0
vmovsd %xmm0, (%r15)
addq $8, %r15
addq $8, %rbx
decq %r14
jne LBB0_2
LBB0_3:
addq $16, %rsp
popq %rbx
popq %r14
popq %r15
retq
.subsections_via_symbols
@tmcdonell
Copy link
Author

tmcdonell commented Jan 3, 2018

$ llc-5.0 --version
LLVM (http://llvm.org/):
  LLVM version 5.0.1
  Optimized build with assertions.
  Default target: x86_64-apple-darwin15.6.0
  Host CPU: ivybridge

  Registered Targets:
    [..]

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment