Critical Dr.Jit compiler failure: jit_llvm_compile(): a global offset table was generated by LLVM, which typically means that a compiler intrinsic was not supported by the target architecture. DrJit cannot handle this case and will terminate the application now. For reference, the following kernel code was responsible for this problem:
define void @drjit_2a9fb1a3d6277c99f9e36112fe3a83c2(i64 %start, i64 %end, i8** noalias %params) #0 {
entry:
br label %body
body:
%index = phi i64 [ %index_next, %suffix ], [ %start, %entry ]
%f1_1 = insertelement <8 x float> undef, float 0xbff0000000000000, i32 0
%f1 = shufflevector <8 x float> %f1_1, <8 x float> undef, <8 x i32> zeroinitializer
%f2_1 = insertelement <8 x float> undef, float 0x3f80732600000000, i32 0
%f2 = shufflevector <8 x float> %f2_1, <8 x float> undef, <8 x i32> zeroinitializer
%r3_0 = trunc i64 %index to i32
%r3_1 = insertelement <8 x i32> undef, i32 %r3_0, i32 0
%r3_2 = shufflevector <8 x i32> %r3_1, <8 x i32> undef, <8 x i32> zeroinitializer
%r3 = add <8 x i32> %r3_2, <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
%r4_1 = insertelement <8 x i32> undef, i32 103079216, i32 0
%r4 = shufflevector <8 x i32> %r4_1, <8 x i32> undef, <8 x i32> zeroinitializer
%r5_1 = insertelement <8 x i32> undef, i32 32, i32 0
%r5 = shufflevector <8 x i32> %r5_1, <8 x i32> undef, <8 x i32> zeroinitializer
%r6_0 = zext <8 x i32> %r4 to <8 x i64>
%r6_1 = zext <8 x i32> %r3 to <8 x i64>
%r6_2 = zext <8 x i32> %r5 to <8 x i64>
%r6_3 = mul <8 x i64> %r6_0, %r6_1
%r6_4 = lshr <8 x i64> %r6_3, %r6_2
%r6 = trunc <8 x i64> %r6_4 to <8 x i32>
%r7 = sub <8 x i32> %r3, %r6
%r8_1 = insertelement <8 x i32> undef, i32 1, i32 0
%r8 = shufflevector <8 x i32> %r8_1, <8 x i32> undef, <8 x i32> zeroinitializer
%r9 = lshr <8 x i32> %r7, %r8
%r10 = add <8 x i32> %r9, %r6
%r11_1 = insertelement <8 x i32> undef, i32 7, i32 0
%r11 = shufflevector <8 x i32> %r11_1, <8 x i32> undef, <8 x i32> zeroinitializer
%r12 = lshr <8 x i32> %r10, %r11
%r13 = sub <8 x i32> zeroinitializer, %r12
%r14_1 = insertelement <8 x i32> undef, i32 250, i32 0
%r14 = shufflevector <8 x i32> %r14_1, <8 x i32> undef, <8 x i32> zeroinitializer
%r15_0 = mul <8 x i32> %r13, %r14
%r15 = add <8 x i32> %r15_0, %r3
%f16 = uitofp <8 x i32> %r12 to <8 x float>
%f17 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f16, <8 x float> %f2, <8 x float> %f1)
%f18 = uitofp <8 x i32> %r15 to <8 x float>
%f19 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f18, <8 x float> %f2, <8 x float> %f1)
%f20_1 = insertelement <8 x float> undef, float 0xc000000000000000, i32 0
%f20 = shufflevector <8 x float> %f20_1, <8 x float> undef, <8 x i32> zeroinitializer
%f21_1 = insertelement <8 x float> undef, float 0x3ff0000000000000, i32 0
%f21 = shufflevector <8 x float> %f21_1, <8 x float> undef, <8 x i32> zeroinitializer
%f22 = fmul <8 x float> %f19, %f19
%f23 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f17, <8 x float> %f17, <8 x float> %f22)
%f24 = fadd <8 x float> %f21, %f23
%f25 = fdiv <8 x float> %f21, %f24
%f26 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %f25)
%f27 = fmul <8 x float> %f19, %f26
%f28 = fmul <8 x float> %f17, %f26
%f29 = fadd <8 x float> %f26, %f20
%f30 = fmul <8 x float> %f27, %f27
%f31 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f28, <8 x float> %f28, <8 x float> %f30)
%f32 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f29, <8 x float> %f29, <8 x float> %f31)
%f33 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %f32)
%f34 = fsub <8 x float> %f33, %f21
%f35 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f27, <8 x float> %f34, <8 x float> %f27)
%f36 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f28, <8 x float> %f34, <8 x float> %f28)
%f37 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f26, <8 x float> %f34, <8 x float> %f29)
%f38 = fmul <8 x float> %f35, %f35
%f39 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f36, <8 x float> %f36, <8 x float> %f38)
%f40 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f37, <8 x float> %f37, <8 x float> %f39)
%f41 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %f40)
%f42 = fsub <8 x float> %f41, %f21
%f43 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f27, <8 x float> %f42, <8 x float> %f35)
%f44 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f28, <8 x float> %f42, <8 x float> %f36)
%f45 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f26, <8 x float> %f42, <8 x float> %f37)
%f46 = fmul <8 x float> %f43, %f43
%f47 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f44, <8 x float> %f44, <8 x float> %f46)
%f48 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f45, <8 x float> %f45, <8 x float> %f47)
%f49 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %f48)
%f50 = fsub <8 x float> %f49, %f21
%f51 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f27, <8 x float> %f50, <8 x float> %f43)
%f52 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f28, <8 x float> %f50, <8 x float> %f44)
%f53 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f26, <8 x float> %f50, <8 x float> %f45)
%f54 = fmul <8 x float> %f51, %f51
%f55 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f52, <8 x float> %f52, <8 x float> %f54)
%f56 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f53, <8 x float> %f53, <8 x float> %f55)
%f57 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %f56)
%f58 = fsub <8 x float> %f57, %f21
%f59 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f27, <8 x float> %f58, <8 x float> %f51)
%f60 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f28, <8 x float> %f58, <8 x float> %f52)
%f61 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f26, <8 x float> %f58, <8 x float> %f53)
%f62 = fmul <8 x float> %f59, %f59
%f63 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f60, <8 x float> %f60, <8 x float> %f62)
%f64 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f61, <8 x float> %f61, <8 x float> %f63)
%f65 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %f64)
%f66 = fsub <8 x float> %f65, %f21
%f67 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f27, <8 x float> %f66, <8 x float> %f59)
%f68 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f28, <8 x float> %f66, <8 x float> %f60)
%f69 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f26, <8 x float> %f66, <8 x float> %f61)
%f70 = fmul <8 x float> %f67, %f67
%f71 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f68, <8 x float> %f68, <8 x float> %f70)
%f72 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f69, <8 x float> %f69, <8 x float> %f71)
%f73 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %f72)
%f74 = fsub <8 x float> %f73, %f21
%f75 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f27, <8 x float> %f74, <8 x float> %f67)
%f76 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f28, <8 x float> %f74, <8 x float> %f68)
%f77 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f26, <8 x float> %f74, <8 x float> %f69)
%f78 = fmul <8 x float> %f75, %f75
%f79 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f76, <8 x float> %f76, <8 x float> %f78)
%f80 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f77, <8 x float> %f77, <8 x float> %f79)
%f81 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %f80)
%f82 = fsub <8 x float> %f81, %f21
%f83 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f27, <8 x float> %f82, <8 x float> %f75)
%f84 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f28, <8 x float> %f82, <8 x float> %f76)
%f85 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f26, <8 x float> %f82, <8 x float> %f77)
%f86 = fmul <8 x float> %f83, %f83
%f87 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f84, <8 x float> %f84, <8 x float> %f86)
%f88 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f85, <8 x float> %f85, <8 x float> %f87)
%f89 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %f88)
%f90 = fsub <8 x float> %f89, %f21
%f91 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f27, <8 x float> %f90, <8 x float> %f83)
%f92 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f28, <8 x float> %f90, <8 x float> %f84)
%f93 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f26, <8 x float> %f90, <8 x float> %f85)
%f94 = fmul <8 x float> %f91, %f91
%f95 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f92, <8 x float> %f92, <8 x float> %f94)
%f96 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f93, <8 x float> %f93, <8 x float> %f95)
%f97 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %f96)
%f98 = fsub <8 x float> %f97, %f21
%f99 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f27, <8 x float> %f98, <8 x float> %f91)
%f100 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f28, <8 x float> %f98, <8 x float> %f92)
%f101 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f26, <8 x float> %f98, <8 x float> %f93)
%f102_1 = insertelement <8 x float> undef, float 0x0, i32 0
%f102 = shufflevector <8 x float> %f102_1, <8 x float> undef, <8 x i32> zeroinitializer
%f103_1 = insertelement <8 x float> undef, float 0x3f50624de0000000, i32 0
%f103 = shufflevector <8 x float> %f103_1, <8 x float> undef, <8 x i32> zeroinitializer
%f104 = fadd <8 x float> %f99, %f103
%f105 = fmul <8 x float> %f104, %f104
%f106 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f100, <8 x float> %f100, <8 x float> %f105)
%f107 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f101, <8 x float> %f101, <8 x float> %f106)
%f108 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %f107)
%f109 = fsub <8 x float> %f108, %f21
%f110 = fsub <8 x float> %f99, %f103
%f111 = fmul <8 x float> %f110, %f110
%f112 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f100, <8 x float> %f100, <8 x float> %f111)
%f113 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f101, <8 x float> %f101, <8 x float> %f112)
%f114 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %f113)
%f115 = fsub <8 x float> %f114, %f21
%f116 = fsub <8 x float> %f109, %f115
%f117 = fadd <8 x float> %f100, %f103
%f118 = fmul <8 x float> %f99, %f99
%f119 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f117, <8 x float> %f117, <8 x float> %f118)
%f120 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f101, <8 x float> %f101, <8 x float> %f119)
%f121 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %f120)
%f122 = fsub <8 x float> %f121, %f21
%f123 = fsub <8 x float> %f100, %f103
%f124 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f123, <8 x float> %f123, <8 x float> %f118)
%f125 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f101, <8 x float> %f101, <8 x float> %f124)
%f126 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %f125)
%f127 = fsub <8 x float> %f126, %f21
%f128 = fsub <8 x float> %f122, %f127
%f129 = fadd <8 x float> %f101, %f103
%f130 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f100, <8 x float> %f100, <8 x float> %f118)
%f131 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f129, <8 x float> %f129, <8 x float> %f130)
%f132 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %f131)
%f133 = fsub <8 x float> %f132, %f21
%f134 = fsub <8 x float> %f101, %f103
%f135 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f134, <8 x float> %f134, <8 x float> %f130)
%f136 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %f135)
%f137 = fsub <8 x float> %f136, %f21
%f138 = fsub <8 x float> %f133, %f137
%f139_1 = insertelement <8 x float> undef, float 0x407f400000000000, i32 0
%f139 = shufflevector <8 x float> %f139_1, <8 x float> undef, <8 x i32> zeroinitializer
%f140 = fmul <8 x float> %f116, %f139
%f141 = fmul <8 x float> %f128, %f139
%f142 = fmul <8 x float> %f138, %f139
%f143 = fmul <8 x float> %f140, %f102
%f144 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f141, <8 x float> %f1, <8 x float> %f143)
%f145 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f142, <8 x float> %f1, <8 x float> %f144)
%f146 = call <8 x float> @llvm.maxnum.v8f32(<8 x float> %f102, <8 x float> %f145)
%f147 = call <8 x float> @llvm.fma.v8f32(<8 x float> %f101, <8 x float> %f101, <8 x float> %f130)
%f148 = call <8 x float> @llvm.sqrt.v8f32(<8 x float> %f147)
%f149 = fsub <8 x float> %f148, %f21
%f150_1 = insertelement <8 x float> undef, float 0x3fb99999a0000000, i32 0
%f150 = shufflevector <8 x float> %f150_1, <8 x float> undef, <8 x i32> zeroinitializer
%p151 = fcmp ogt <8 x float> %f149, %f150
%f152 = select <8 x i1> %p151, <8 x float> %f102, <8 x float> %f146
%f153_1 = insertelement <8 x float> undef, float 0x3fc99999a0000000, i32 0
%f153 = shufflevector <8 x float> %f153_1, <8 x float> undef, <8 x i32> zeroinitializer
%f154_1 = insertelement <8 x float> undef, float 0x3fd99999a0000000, i32 0
%f154 = shufflevector <8 x float> %f154_1, <8 x float> undef, <8 x i32> zeroinitializer
%f155 = fmul <8 x float> %f154, %f152
%f156 = fmul <8 x float> %f153, %f152
%f157 = fadd <8 x float> %f150, %f155
%f158 = fadd <8 x float> %f153, %f156
%r159_1 = insertelement <8 x i32> undef, i32 3, i32 0
%r159 = shufflevector <8 x i32> %r159_1, <8 x i32> undef, <8 x i32> zeroinitializer
%r160 = mul <8 x i32> %r3, %r159
%r161 = add <8 x i32> %r160, %r8
%r162_1 = insertelement <8 x i32> undef, i32 2, i32 0
%r162 = shufflevector <8 x i32> %r162_1, <8 x i32> undef, <8 x i32> zeroinitializer
%r163 = add <8 x i32> %r160, %r162
%rd164_p1 = getelementptr inbounds i8*, i8** %params, i32 3
%rd164 = load i8*, i8** %rd164_p1, align 8, !alias.scope !1
%r165_0 = trunc i64 %index to i32
%r165_1 = insertelement <8 x i32> undef, i32 %r165_0, i32 0
%r165_2 = shufflevector <8 x i32> %r165_1, <8 x i32> undef, <8 x i32> zeroinitializer
%r165 = add <8 x i32> %r165_2, <i32 0, i32 1, i32 2, i32 3, i32 4, i32 5, i32 6, i32 7>
%p166_0 = trunc i64 %end to i32
%p166_1 = insertelement <8 x i32> undef, i32 %p166_0, i32 0
%p166_2 = shufflevector <8 x i32> %p166_1, <8 x i32> undef, <8 x i32> zeroinitializer
%p166 = icmp ult <8 x i32> %r165, %p166_2
%u167_0 = bitcast i8* %rd164 to float*
%u167_1 = getelementptr float, float* %u167_0, <8 x i32> %r160
call void @llvm.masked.scatter.v8f32(<8 x float> %f157, <8 x float*> %u167_1, i32 4, <8 x i1> %p166)
%u168_0 = bitcast i8* %rd164 to float*
%u168_1 = getelementptr float, float* %u168_0, <8 x i32> %r161
call void @llvm.masked.scatter.v8f32(<8 x float> %f157, <8 x float*> %u168_1, i32 4, <8 x i1> %p166)
%u169_0 = bitcast i8* %rd164 to float*
%u169_1 = getelementptr float, float* %u169_0, <8 x i32> %r163
call void @llvm.masked.scatter.v8f32(<8 x float> %f158, <8 x float*> %u169_1, i32 4, <8 x i1> %p166)
br label %suffix
suffix:
%index_next = add i64 %index, 8
%cond = icmp uge i64 %index_next, %end
br i1 %cond, label %done, label %body, !llvm.loop !2
done:
ret void
}
declare <8 x float> @llvm.fma.v8f32(<8 x float>, <8 x float>, <8 x float>)
declare <8 x float> @llvm.sqrt.v8f32(<8 x float>)
declare <8 x float> @llvm.maxnum.v8f32(<8 x float>, <8 x float>)
declare void @llvm.masked.scatter.v8f32(<8 x float>, <8 x float*>, i32, <8 x i1>)
!0 = !{!0}
!1 = !{!1, !0}
!2 = !{!"llvm.loop.unroll.disable", !"llvm.loop.vectorize.enable", i1 0}
attributes #0 = { norecurse nounwind "frame-pointer"="none" "no-builtins" "no-stack-arg-probe" "target-cpu"="ivybridge" "target-features"="-vzeroupper,-avx512pf,-tsxldtrk,+cx16,+sahf,-tbm,-avx512ifma,-sha,+crc32,-fma4,-vpclmulqdq,-prfchw,-bmi2,-cldemote,+fsgsbase,-ptwrite,-amx-tile,-uintr,-gfni,+popcnt,-widekl,+aes,-avx512bitalg,-movdiri,-xsaves,-avx512er,-avxvnni,-avx512fp16,-avx512vnni,-amx-bf16,-avx512vpopcntdq,-pconfig,-clwb,-avx512f,-xsavec,-clzero,-pku,+mmx,-lwp,-rdpid,-xop,-rdseed,-waitpkg,-kl,-movdir64b,-sse4a,-avx512bw,-clflushopt,+xsave,-avx512vbmi2,+64bit,-avx512vl,-serialize,-hreset,-invpcid,-avx512cd,+avx,-vaes,-avx512bf16,+cx8,-fma,-rtm,-bmi,-enqcmd,+rdrnd,-mwaitx,+sse4.1,+sse4.2,-avx2,+fxsr,-wbnoinvd,+sse,-lzcnt,+pclmul,-prefetchwt1,+f16c,+ssse3,-sgx,-shstk,+cmov,-avx512vbmi,-amx-int8,-movbe,-avx512vp2intersect,+xsaveopt,-avx512dq,+sse2,-adx,+sse3" }
Aborted