replaced with fresh examples
This commit is contained in:
103
examples/mandelbrot_tasks3d/task.ll
Normal file
103
examples/mandelbrot_tasks3d/task.ll
Normal file
@@ -0,0 +1,103 @@
|
||||
; ModuleID = 'task.bc'
|
||||
target datalayout = "e-p:64:64:64-S0-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f16:16:16-f32:32:32-f64:64:64-f128:128:128-v64:64:64-v128:128:128-a0:0:64-v16:16:16-v32:32:32-n16:32:64"
|
||||
target triple = "nvptx64"
|
||||
|
||||
@data = external global [1024 x i32]
|
||||
|
||||
; Function Attrs: alwaysinline nounwind readnone
|
||||
define <1 x i8> @__vselect_i8(<1 x i8>, <1 x i8>, <1 x i32> %mask) #0 {
|
||||
%m = extractelement <1 x i32> %mask, i32 0
|
||||
%cmp = icmp eq i32 %m, 0
|
||||
%d0 = extractelement <1 x i8> %0, i32 0
|
||||
%d1 = extractelement <1 x i8> %1, i32 0
|
||||
%sel = select i1 %cmp, i8 %d0, i8 %d1
|
||||
%r = insertelement <1 x i8> undef, i8 %sel, i32 0
|
||||
ret <1 x i8> %r
|
||||
}
|
||||
|
||||
; Function Attrs: alwaysinline nounwind readnone
|
||||
define <1 x i16> @__vselect_i16(<1 x i16>, <1 x i16>, <1 x i32> %mask) #0 {
|
||||
%m = extractelement <1 x i32> %mask, i32 0
|
||||
%cmp = icmp eq i32 %m, 0
|
||||
%d0 = extractelement <1 x i16> %0, i32 0
|
||||
%d1 = extractelement <1 x i16> %1, i32 0
|
||||
%sel = select i1 %cmp, i16 %d0, i16 %d1
|
||||
%r = insertelement <1 x i16> undef, i16 %sel, i32 0
|
||||
ret <1 x i16> %r
|
||||
}
|
||||
|
||||
; Function Attrs: alwaysinline nounwind readnone
|
||||
define <1 x i64> @__vselect_i64(<1 x i64>, <1 x i64>, <1 x i32> %mask) #0 {
|
||||
%m = extractelement <1 x i32> %mask, i32 0
|
||||
%cmp = icmp eq i32 %m, 0
|
||||
%d0 = extractelement <1 x i64> %0, i32 0
|
||||
%d1 = extractelement <1 x i64> %1, i32 0
|
||||
%sel = select i1 %cmp, i64 %d0, i64 %d1
|
||||
%r = insertelement <1 x i64> undef, i64 %sel, i32 0
|
||||
ret <1 x i64> %r
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind readnone
|
||||
declare double @llvm.nvvm.rsqrt.approx.d(double) #1
|
||||
|
||||
; Function Attrs: alwaysinline nounwind
|
||||
define void @__aos_to_soa4_float1(<1 x float> %v0, <1 x float> %v1, <1 x float> %v2, <1 x float> %v3, <1 x float>* noalias nocapture %out0, <1 x float>* noalias nocapture %out1, <1 x float>* noalias nocapture %out2, <1 x float>* noalias nocapture %out3) #2 {
|
||||
store <1 x float> %v0, <1 x float>* %out0, align 4
|
||||
store <1 x float> %v1, <1 x float>* %out1, align 4
|
||||
store <1 x float> %v2, <1 x float>* %out2, align 4
|
||||
store <1 x float> %v3, <1 x float>* %out3, align 4
|
||||
ret void
|
||||
}
|
||||
|
||||
; Function Attrs: alwaysinline nounwind
|
||||
define void @__soa_to_aos4_float1(<1 x float> %v0, <1 x float> %v1, <1 x float> %v2, <1 x float> %v3, <1 x float>* noalias nocapture %out0, <1 x float>* noalias nocapture %out1, <1 x float>* noalias nocapture %out2, <1 x float>* noalias nocapture %out3) #2 {
|
||||
store <1 x float> %v0, <1 x float>* %out0, align 4
|
||||
store <1 x float> %v1, <1 x float>* %out1, align 4
|
||||
store <1 x float> %v2, <1 x float>* %out2, align 4
|
||||
store <1 x float> %v3, <1 x float>* %out3, align 4
|
||||
ret void
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind
|
||||
define void @__aos_to_soa3_float1(<1 x float> %v0, <1 x float> %v1, <1 x float> %v2, <1 x float>* nocapture %out0, <1 x float>* nocapture %out1, <1 x float>* nocapture %out2) #3 {
|
||||
store <1 x float> %v0, <1 x float>* %out0, align 4
|
||||
store <1 x float> %v1, <1 x float>* %out1, align 4
|
||||
store <1 x float> %v2, <1 x float>* %out2, align 4
|
||||
ret void
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind
|
||||
define void @__soa_to_aos3_float1(<1 x float> %v0, <1 x float> %v1, <1 x float> %v2, <1 x float>* nocapture %out0, <1 x float>* nocapture %out1, <1 x float>* nocapture %out2) #3 {
|
||||
store <1 x float> %v0, <1 x float>* %out0, align 4
|
||||
store <1 x float> %v1, <1 x float>* %out1, align 4
|
||||
store <1 x float> %v2, <1 x float>* %out2, align 4
|
||||
ret void
|
||||
}
|
||||
|
||||
; Function Attrs: alwaysinline nounwind readonly
|
||||
define <1 x double> @__rsqrt_varying_double(<1 x double> %v) #4 {
|
||||
%vs = extractelement <1 x double> %v, i32 0
|
||||
%rs = tail call double @llvm.nvvm.rsqrt.approx.d(double %vs)
|
||||
%rv = insertelement <1 x double> undef, double %rs, i32 0
|
||||
ret <1 x double> %rv
|
||||
}
|
||||
|
||||
; Function Attrs: nounwind
|
||||
declare i32 @foo1___(<1 x i32>) #5
|
||||
|
||||
; Function Attrs: nounwind
|
||||
define void @foo___(<1 x i32> %__mask) #5 {
|
||||
allocas:
|
||||
%calltmp = tail call i32 @foo1___(<1 x i32> %__mask)
|
||||
%calltmp_to_int64 = sext i32 %calltmp to i64
|
||||
%data_offset = getelementptr [1024 x i32]* @data, i64 0, i64 %calltmp_to_int64
|
||||
store i32 0, i32* %data_offset, align 4
|
||||
ret void
|
||||
}
|
||||
|
||||
attributes #0 = { alwaysinline nounwind readnone }
|
||||
attributes #1 = { nounwind readnone }
|
||||
attributes #2 = { alwaysinline nounwind }
|
||||
attributes #3 = { nounwind }
|
||||
attributes #4 = { alwaysinline nounwind readonly }
|
||||
attributes #5 = { nounwind "target-features"="+sm_35" }
|
||||
Reference in New Issue
Block a user