llvm-hs-pretty-0.4.0.0: tests/input/tensorflow_funcs.ll
define float @someFunc(float * %d1, float * %v1) {
ret float 3.0
}
define void @someKernel(float * %d1, float * %d2) {
%1 = alloca float *, i32 1
%2 = load float *, float **%1
%3 = call float @someFunc(float *%d1, float *%2)
ret void
}
define i32 @someFuncInts(i32 * %d1, i32 * %v1) {
ret i32 3
}
define void @someKernelInts(i32 * %d1, i32 * %d2) {
%1 = alloca i32 *, i32 1
%2 = load i32 *, i32 **%1
%3 = call i32 @someFuncInts(i32 *%d1, i32 *%2)
ret void
}
@mysharedmem = internal addrspace(3) global [8 x float] zeroinitializer, align 4
@anothershared = internal addrspace(3) global [12 x i32] zeroinitializer, align 4
define void @usesShared(float addrspace(1) *%d1) {
%1 = getelementptr inbounds [8 x float], [8 x float]* addrspacecast ([8 x float] addrspace(3) *@mysharedmem to [8 x float]*), i32 0, i32 3
%2 = alloca float, i32 1
%3 = load float, float* %2
store float %3, float * %1
ret void
}
define void @usesShared2(float addrspace(1) *%d1) {
%1 = getelementptr inbounds [8 x float], [8 x float]* addrspacecast ([8 x float] addrspace(3) *@mysharedmem to [8 x float]*), i32 0, i32 3
%2 = getelementptr inbounds [12 x i32], [12 x i32]* addrspacecast ([12 x i32] addrspace(3) *@anothershared to [12 x i32]*), i32 0, i32 7
%3 = alloca float, i32 1
%4 = alloca i32, i32 1
%5 = load float, float *%3
%6 = load i32, i32 *%4
store float %5, float *%1
store i32 %6, i32 *%2
ret void
}
define float *@returnsPointer(float *%in) {
ret float * %in
}
define void @usesPointerFunction(float *%in) {
call float *@returnsPointer(float *%in)
ret void
}
define float @returnsFloatConstant(float *%in) {
ret float 4.5
}
define void @testBranches_nophi(float *%d1) {
label1:
%0 = fadd float 3.0, 4.0
%1 = alloca float, i32 1
store float %0, float *%1
br label %label2
label2:
%2 = fadd float 5.0, 7.0
%3 = fcmp ogt float %2, 6.0
br i1 %3, label %label1, label %label2
}
define void @testBranches_onephi(float *%d1) {
label1:
%0 = fadd float 3.0, 4.0
br label %label2
label2:
%1 = phi float [%0, %label1], [%2, %label2]
%2 = fadd float %1, 7.0
%3 = fcmp ogt float %2, 6.0
br i1 %3, label %label1, label %label2
}
define void @testBranches_phifromfuture(float *%d1) {
label1:
%0 = fadd float 3.0, 4.0
br label %label2
label2:
%1 = phi float [%0, %label1], [%2, %label2], [%4, %label3]
%2 = fadd float %1, 7.0
%3 = fcmp ogt float %2, 6.0
br i1 %3, label %label1, label %label2
label3:
%4 = fadd float 8.0, 2.0
br label %label2
}
define void @testBranches_phifromfloat(float *%d1) {
label1:
%0 = fadd float 3.0, 4.0
br label %label2
label2:
%1 = phi float [123.0, %label1], [%2, %label2], [%4, %label3]
%2 = fadd float %1, 7.0
%3 = fcmp ogt float %2, 6.0
br i1 %3, label %label1, label %label2
label3:
%4 = fadd float 8.0, 2.0
br label %label2
}
; from test/cocl/multigpu.cu
define void @multigpu_Z8getValuePf(float* nocapture %outdata) {
br label %2
; <label>:1 ; preds = %2
%.lcssa = phi float [ %16, %2 ]
store float %.lcssa, float* %outdata
ret void
; <label>:2 ; preds = %2, %0
%i.02 = phi i32 [ 1, %0 ], [ %17, %2 ]
%sum.01 = phi float [ 0.000000e+00, %0 ], [ %16, %2 ]
%3 = sext i32 %i.02 to i64
%4 = getelementptr inbounds float, float* %outdata, i64 %3
%5 = load float, float* %4
%6 = fadd float %sum.01, %5
%7 = add nuw nsw i32 %i.02, 1
%8 = sext i32 %7 to i64
%9 = getelementptr inbounds float, float* %outdata, i64 %8
%10 = load float, float* %9
%11 = fadd float %6, %10
%12 = add nsw i32 %i.02, 2
%13 = sext i32 %12 to i64
%14 = getelementptr inbounds float, float* %outdata, i64 %13
%15 = load float, float* %14
%16 = fadd float %11, %15
%17 = add nsw i32 %i.02, 3
%exitcond.2 = icmp eq i32 %17, 1024
br i1 %exitcond.2, label %1, label %2
}