Skip to content

Instantly share code, notes, and snippets.

@tmcdonell
Created January 3, 2018 00:19
Show Gist options
  • Save tmcdonell/4c5f6eb4f2ce6f23184d30fb18247127 to your computer and use it in GitHub Desktop.
Save tmcdonell/4c5f6eb4f2ce6f23184d30fb18247127 to your computer and use it in GitHub Desktop.
; ModuleID = 'map_1bf1a791bb25369d'
target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
target triple = "x86_64-pc-linux-gnu"
; 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 }
.text
.file ""
.section .rodata.cst8,"aM",@progbits,8
.p2align 3
.LCPI0_0:
.quad 4607182418800017408
.LCPI0_1:
.quad 0
.text
.globl map_1bf1a791bb25369d
.p2align 4, 0x90
.type map_1bf1a791bb25369d,@function
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)
vfnmsub213sd .LCPI0_1, %xmm0, %xmm0
callq tanh
vaddsd 8(%rsp), %xmm0, %xmm0
vmovsd %xmm0, (%r15)
addq $8, %r15
addq $8, %rbx
addq $-1, %r14
jne .LBB0_2
.LBB0_3:
addq $16, %rsp
popq %rbx
popq %r14
popq %r15
retq
.Lfunc_end0:
.size map_1bf1a791bb25369d, .Lfunc_end0-map_1bf1a791bb25369d
.section ".note.GNU-stack","",@progbits
@tmcdonell
Copy link
Author

$ llc-5.0 --version
LLVM (http://llvm.org/):
  LLVM version 5.0.0

  Optimized build.
  Default target: x86_64-pc-linux-gnu
  Host CPU: broadwell

  Registered Targets:
    [..]

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