%dx.types.Handle = type { i8* } %dx.types.ResRet.f32 = type { float, float, float, float, i32 } %dx.types.f32 = type { float } %dx.types.Sampler = type opaque define void @main() { entry: %0 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 0, i32 3, i1 false) %1 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 3, i32 0, i32 5, i1 false) %2 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef) %3 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef) %4 = call %dx.types.ResRet.f32 @dx.op.sample.f32(i32 60, %dx.types.Handle %0, %dx.types.Handle %1, float %2, float %3, float undef, float undef, i32 0, i32 0, i32 undef, float 0.000000e+00) %5 = extractvalue %dx.types.ResRet.f32 %4, 0 %6 = extractvalue %dx.types.ResRet.f32 %4, 1 %7 = extractvalue %dx.types.ResRet.f32 %4, 2 %8 = extractvalue %dx.types.ResRet.f32 %4, 3 %9 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef) %10 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef) %11 = call %dx.types.ResRet.f32 @dx.op.sample.f32(i32 60, %dx.types.Handle %0, %dx.types.Handle %1, float %9, float %10, float undef, float undef, i32 -5, i32 7, i32 undef, float 0.000000e+00) %12 = extractvalue %dx.types.ResRet.f32 %11, 0 %13 = extractvalue %dx.types.ResRet.f32 %11, 1 %14 = extractvalue %dx.types.ResRet.f32 %11, 2 %15 = extractvalue %dx.types.ResRet.f32 %11, 3 %16 = fadd fast float %5, %12 %17 = fadd fast float %6, %13 %18 = fadd fast float %7, %14 %19 = fadd fast float %8, %15 %20 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef) %21 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef) %22 = call %dx.types.ResRet.f32 @dx.op.sample.f32(i32 60, %dx.types.Handle %0, %dx.types.Handle %1, float %20, float %21, float undef, float undef, i32 -4, i32 1, i32 undef, float 5.000000e-01) %23 = extractvalue %dx.types.ResRet.f32 %22, 0 %24 = extractvalue %dx.types.ResRet.f32 %22, 1 %25 = extractvalue %dx.types.ResRet.f32 %22, 2 %26 = extractvalue %dx.types.ResRet.f32 %22, 3 %27 = fadd fast float %16, %23 %28 = fadd fast float %17, %24 %29 = fadd fast float %18, %25 %30 = fadd fast float %19, %26 %31 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef) %32 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef) %33 = call %dx.types.ResRet.f32 @dx.op.sample.f32(i32 60, %dx.types.Handle %0, %dx.types.Handle %1, float %31, float %32, float undef, float undef, i32 -3, i32 2, i32 undef, float 0.000000e+00) %34 = extractvalue %dx.types.ResRet.f32 %33, 0 %35 = extractvalue %dx.types.ResRet.f32 %33, 1 %36 = extractvalue %dx.types.ResRet.f32 %33, 2 %37 = extractvalue %dx.types.ResRet.f32 %33, 3 %38 = extractvalue %dx.types.ResRet.f32 %33, 4 %39 = fadd fast float %27, %34 %40 = fadd fast float %28, %35 %41 = fadd fast float %29, %36 %42 = fadd fast float %30, %37 %43 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %38) %44 = sext i1 %43 to i32 %45 = uitofp i32 %44 to float %46 = fadd fast float %39, %45 %47 = fadd fast float %40, %45 %48 = fadd fast float %41, %45 %49 = fadd fast float %42, %45 %50 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef) %51 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 1, i32 undef) %52 = call float @dx.op.loadInput.f32(i32 4, i32 0, i32 0, i8 0, i32 undef) %53 = call %dx.types.ResRet.f32 @dx.op.sample.f32(i32 60, %dx.types.Handle %0, %dx.types.Handle %1, float %50, float %51, float undef, float undef, i32 -3, i32 2, i32 undef, float %52) %54 = extractvalue %dx.types.ResRet.f32 %53, 0 %55 = extractvalue %dx.types.ResRet.f32 %53, 1 %56 = extractvalue %dx.types.ResRet.f32 %53, 2 %57 = extractvalue %dx.types.ResRet.f32 %53, 3 %58 = extractvalue %dx.types.ResRet.f32 %53, 4 %59 = fadd fast float %46, %54 %60 = fadd fast float %47, %55 %61 = fadd fast float %48, %56 %62 = fadd fast float %49, %57 %63 = call i1 @dx.op.checkAccessFullyMapped.i32(i32 71, i32 %58) %64 = sext i1 %63 to i32 %65 = uitofp i32 %64 to float %66 = fadd fast float %59, %65 %67 = fadd fast float %60, %65 %68 = fadd fast float %61, %65 %69 = fadd fast float %62, %65 call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 0, float %66) call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 1, float %67) call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 2, float %68) call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 3, float %69) ret void } ; Function Attrs: nounwind readonly declare %dx.types.Handle @dx.op.createHandle(i32, i8, i32, i32, i1) #0 ; Function Attrs: nounwind readnone declare float @dx.op.loadInput.f32(i32, i32, i32, i8, i32) #1 ; Function Attrs: nounwind readonly declare %dx.types.ResRet.f32 @dx.op.sample.f32(i32, %dx.types.Handle, %dx.types.Handle, float, float, float, float, i32, i32, i32, float) #0 ; Function Attrs: nounwind declare void @dx.op.tempRegStore.f32(i32, i32, float) #2 ; Function Attrs: nounwind readonly declare float @dx.op.tempRegLoad.f32(i32, i32) #0 ; Function Attrs: nounwind declare void @dx.op.tempRegStore.i32(i32, i32, i32) #2 ; Function Attrs: nounwind readonly declare i32 @dx.op.tempRegLoad.i32(i32, i32) #0 ; Function Attrs: nounwind readonly declare i1 @dx.op.checkAccessFullyMapped.i32(i32, i32) #0 ; Function Attrs: nounwind declare void @dx.op.storeOutput.f32(i32, i32, i32, i8, float) #2 ; Function Attrs: nounwind readnone declare float @dx.op.bitcastI32toF32(i32, i32) #1 ; Function Attrs: nounwind readnone declare i32 @dx.op.bitcastF32toI32(i32, float) #1 attributes #0 = { nounwind readonly } attributes #1 = { nounwind readnone } attributes #2 = { nounwind } !dx.version = !{!0} !dx.valver = !{!0} !dx.shaderModel = !{!1} !dx.resources = !{!2} !dx.entryPoints = !{!8} !llvm.ident = !{!16} !0 = !{i32 1, i32 0} !1 = !{!"ps", i32 6, i32 0} !2 = !{!3, null, null, !6} !3 = !{!4} !4 = !{i32 0, %dx.types.f32 addrspace(1)* undef, !"T0", i32 0, i32 3, i32 1, i32 2, i32 0, !5} !5 = !{i32 0, i32 9} !6 = !{!7} !7 = !{i32 0, %dx.types.Sampler addrspace(1)* undef, !"S0", i32 0, i32 5, i32 1, i32 0, null} !8 = !{void ()* @main, !"main", !9, !2, !15} !9 = !{!10, !13, null} !10 = !{!11} !11 = !{i32 0, !"A", i8 9, i8 0, !12, i8 2, i32 1, i8 2, i32 0, i8 0, null} !12 = !{i32 0} !13 = !{!14} !14 = !{i32 0, !"SV_Target", i8 9, i8 16, !12, i8 0, i32 1, i8 4, i32 0, i8 0, null} !15 = !{i32 0, i64 256} !16 = !{!"dxbc2dxil 1.2"}