|
@@ -0,0 +1,191 @@
|
|
|
+
|
|
|
+%dx.types.Handle = type { i8* }
|
|
|
+%dx.types.CBufRet.i32 = type { i32, i32, i32, i32 }
|
|
|
+%dx.types.ResRet.f32 = type { float, float, float, float, i32 }
|
|
|
+%dx.types.CBufRet.f32 = type { float, float, float, float }
|
|
|
+%dx.types.f32 = type { float }
|
|
|
+%dx.types.i8x16 = type { [16 x i8] }
|
|
|
+%dx.types.i8x8096 = type { [8096 x i8] }
|
|
|
+%dx.types.i8x65536 = type { [65536 x i8] }
|
|
|
+%dx.types.Sampler = type opaque
|
|
|
+
|
|
|
[email protected] = internal global i32 undef, align 4
|
|
|
[email protected] = internal global float undef, align 4
|
|
|
[email protected] = internal global i32 undef, align 4
|
|
|
[email protected] = internal global float undef, align 4
|
|
|
+
|
|
|
+define internal void @dx.fb.0() {
|
|
|
+entry:
|
|
|
+ %0 = load i32, i32* @dx.v32.r0
|
|
|
+ %1 = add i32 253, %0
|
|
|
+ %2 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 1, i32 14, i1 false)
|
|
|
+ %3 = call %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32 59, %dx.types.Handle %2, i32 %1)
|
|
|
+ %4 = extractvalue %dx.types.CBufRet.i32 %3, 2
|
|
|
+ %5 = call float @dx.op.bitcastI32toF32(i32 126, i32 %4)
|
|
|
+ %6 = extractvalue %dx.types.CBufRet.i32 %3, 3
|
|
|
+ store float %5, float* @dx.v32.r2
|
|
|
+ store i32 %6, i32* @dx.v32.r3
|
|
|
+ %7 = load float, float* @dx.v32.r2
|
|
|
+ %8 = call i32 @dx.op.bitcastF32toI32(i32 127, float %7)
|
|
|
+ %9 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 0, i32 %8, i1 false)
|
|
|
+ %10 = load i32, i32* @dx.v32.r3
|
|
|
+ %11 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 3, i32 0, i32 %10, i1 false)
|
|
|
+ %12 = call %dx.types.ResRet.f32 @dx.op.sample.f32(i32 60, %dx.types.Handle %9, %dx.types.Handle %11, float 1.250000e-01, float 8.750000e-01, float undef, float undef, i32 0, i32 0, i32 undef, float 0.000000e+00)
|
|
|
+ %13 = extractvalue %dx.types.ResRet.f32 %12, 0
|
|
|
+ store float %13, float* @dx.v32.r2
|
|
|
+ %14 = load i32, i32* @dx.v32.r0
|
|
|
+ %15 = add i32 253, %14
|
|
|
+ %16 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 1, i32 14, i1 false)
|
|
|
+ %17 = call %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32 59, %dx.types.Handle %16, i32 %15)
|
|
|
+ %18 = extractvalue %dx.types.CBufRet.i32 %17, 1
|
|
|
+ store i32 %18, i32* @dx.v32.r3
|
|
|
+ %19 = load i32, i32* @dx.v32.r0
|
|
|
+ %20 = add i32 253, %19
|
|
|
+ %21 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 1, i32 14, i1 false)
|
|
|
+ %22 = call %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32 59, %dx.types.Handle %21, i32 %20)
|
|
|
+ %23 = extractvalue %dx.types.CBufRet.i32 %22, 0
|
|
|
+ %24 = load float, float* @dx.v32.r2
|
|
|
+ %25 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 2, i32 %23, i1 false)
|
|
|
+ %26 = load i32, i32* @dx.v32.r3
|
|
|
+ %27 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %25, i32 %26)
|
|
|
+ %28 = extractvalue %dx.types.CBufRet.f32 %27, 0
|
|
|
+ %29 = fadd fast float %24, %28
|
|
|
+ store float %29, float* @dx.v32.r1
|
|
|
+ ret void
|
|
|
+}
|
|
|
+
|
|
|
+define internal void @dx.fb.1() {
|
|
|
+entry:
|
|
|
+ %0 = load i32, i32* @dx.v32.r0
|
|
|
+ %1 = add i32 253, %0
|
|
|
+ %2 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 1, i32 14, i1 false)
|
|
|
+ %3 = call %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32 59, %dx.types.Handle %2, i32 %1)
|
|
|
+ %4 = extractvalue %dx.types.CBufRet.i32 %3, 2
|
|
|
+ %5 = call float @dx.op.bitcastI32toF32(i32 126, i32 %4)
|
|
|
+ %6 = extractvalue %dx.types.CBufRet.i32 %3, 3
|
|
|
+ store float %5, float* @dx.v32.r2
|
|
|
+ store i32 %6, i32* @dx.v32.r3
|
|
|
+ %7 = load float, float* @dx.v32.r2
|
|
|
+ %8 = call i32 @dx.op.bitcastF32toI32(i32 127, float %7)
|
|
|
+ %9 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 0, i32 %8, i1 false)
|
|
|
+ %10 = load i32, i32* @dx.v32.r3
|
|
|
+ %11 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 3, i32 0, i32 %10, i1 false)
|
|
|
+ %12 = call %dx.types.ResRet.f32 @dx.op.sample.f32(i32 60, %dx.types.Handle %9, %dx.types.Handle %11, float 2.500000e-01, float 7.500000e-01, float undef, float undef, i32 0, i32 0, i32 undef, float 0.000000e+00)
|
|
|
+ %13 = extractvalue %dx.types.ResRet.f32 %12, 0
|
|
|
+ store float %13, float* @dx.v32.r2
|
|
|
+ %14 = load i32, i32* @dx.v32.r0
|
|
|
+ %15 = add i32 253, %14
|
|
|
+ %16 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 1, i32 14, i1 false)
|
|
|
+ %17 = call %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32 59, %dx.types.Handle %16, i32 %15)
|
|
|
+ %18 = extractvalue %dx.types.CBufRet.i32 %17, 1
|
|
|
+ store i32 %18, i32* @dx.v32.r3
|
|
|
+ %19 = load i32, i32* @dx.v32.r0
|
|
|
+ %20 = add i32 253, %19
|
|
|
+ %21 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 1, i32 14, i1 false)
|
|
|
+ %22 = call %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32 59, %dx.types.Handle %21, i32 %20)
|
|
|
+ %23 = extractvalue %dx.types.CBufRet.i32 %22, 0
|
|
|
+ store i32 %23, i32* @dx.v32.r0
|
|
|
+ %24 = load float, float* @dx.v32.r2
|
|
|
+ %25 = load i32, i32* @dx.v32.r0
|
|
|
+ %26 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 2, i32 %25, i1 false)
|
|
|
+ %27 = load i32, i32* @dx.v32.r3
|
|
|
+ %28 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %26, i32 %27)
|
|
|
+ %29 = extractvalue %dx.types.CBufRet.f32 %28, 0
|
|
|
+ %30 = fmul fast float %24, %29
|
|
|
+ store float %30, float* @dx.v32.r1
|
|
|
+ ret void
|
|
|
+}
|
|
|
+
|
|
|
+define void @main() {
|
|
|
+entry:
|
|
|
+ %0 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 0, i32 0, i1 false)
|
|
|
+ %1 = call %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32 59, %dx.types.Handle %0, i32 0)
|
|
|
+ %2 = extractvalue %dx.types.CBufRet.i32 %1, 0
|
|
|
+ store i32 %2, i32* @dx.v32.r0
|
|
|
+ %3 = load i32, i32* @dx.v32.r0
|
|
|
+ %4 = add i32 0, %3
|
|
|
+ %5 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 1, i32 14, i1 false)
|
|
|
+ %6 = call %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32 59, %dx.types.Handle %5, i32 %4)
|
|
|
+ %7 = extractvalue %dx.types.CBufRet.i32 %6, 0
|
|
|
+ switch i32 %7, label %fcall0.end [
|
|
|
+ i32 0, label %fcall0.case0
|
|
|
+ i32 1, label %fcall0.case1
|
|
|
+ ]
|
|
|
+
|
|
|
+fcall0.case0: ; preds = %entry
|
|
|
+ call void @dx.fb.0()
|
|
|
+ br label %fcall0.end
|
|
|
+
|
|
|
+fcall0.case1: ; preds = %entry
|
|
|
+ call void @dx.fb.1()
|
|
|
+ br label %fcall0.end
|
|
|
+
|
|
|
+fcall0.end: ; preds = %fcall0.case1, %fcall0.case0, %entry
|
|
|
+ %8 = load float, float* @dx.v32.r1
|
|
|
+ call void @dx.op.storeOutput.f32(i32 5, i32 0, i32 0, i8 0, float %8)
|
|
|
+ ret void
|
|
|
+}
|
|
|
+
|
|
|
+; Function Attrs: nounwind readonly
|
|
|
+declare %dx.types.Handle @dx.op.createHandle(i32, i8, i32, i32, i1) #0
|
|
|
+
|
|
|
+; Function Attrs: nounwind readonly
|
|
|
+declare %dx.types.CBufRet.i32 @dx.op.cbufferLoadLegacy.i32(i32, %dx.types.Handle, i32) #0
|
|
|
+
|
|
|
+; Function Attrs: nounwind
|
|
|
+declare void @dx.op.tempRegStore.i32(i32, i32, i32) #1
|
|
|
+
|
|
|
+; Function Attrs: nounwind readonly
|
|
|
+declare i32 @dx.op.tempRegLoad.i32(i32, i32) #0
|
|
|
+
|
|
|
+; Function Attrs: nounwind readonly
|
|
|
+declare float @dx.op.tempRegLoad.f32(i32, i32) #0
|
|
|
+
|
|
|
+; Function Attrs: nounwind
|
|
|
+declare void @dx.op.storeOutput.f32(i32, i32, i32, i8, float) #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) #1
|
|
|
+
|
|
|
+; Function Attrs: nounwind readonly
|
|
|
+declare %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32, %dx.types.Handle, i32) #0
|
|
|
+
|
|
|
+; Function Attrs: nounwind readnone
|
|
|
+declare float @dx.op.bitcastI32toF32(i32, i32) #2
|
|
|
+
|
|
|
+; Function Attrs: nounwind readnone
|
|
|
+declare i32 @dx.op.bitcastF32toI32(i32, float) #2
|
|
|
+
|
|
|
+attributes #0 = { nounwind readonly }
|
|
|
+attributes #1 = { nounwind }
|
|
|
+attributes #2 = { nounwind readnone }
|
|
|
+
|
|
|
+!dx.version = !{!0}
|
|
|
+!dx.valver = !{!0}
|
|
|
+!dx.shaderModel = !{!1}
|
|
|
+!dx.resources = !{!2}
|
|
|
+!dx.entryPoints = !{!13}
|
|
|
+!llvm.ident = !{!18}
|
|
|
+
|
|
|
+!0 = !{i32 1, i32 0}
|
|
|
+!1 = !{!"ps", i32 6, i32 0}
|
|
|
+!2 = !{!3, null, !6, !10}
|
|
|
+!3 = !{!4}
|
|
|
+!4 = !{i32 0, %dx.types.f32 addrspace(1)* undef, !"T0", i32 1, i32 0, i32 128, i32 2, i32 0, !5}
|
|
|
+!5 = !{i32 0, i32 9}
|
|
|
+!6 = !{!7, !8, !9}
|
|
|
+!7 = !{i32 0, %dx.types.i8x16 addrspace(2)* undef, !"CB0", i32 0, i32 0, i32 1, i32 16, null}
|
|
|
+!8 = !{i32 1, %dx.types.i8x8096 addrspace(2)* undef, !"CB1", i32 0, i32 14, i32 1, i32 8096, null}
|
|
|
+!9 = !{i32 2, %dx.types.i8x65536 addrspace(2)* undef, !"CB2", i32 1, i32 0, i32 14, i32 65536, null}
|
|
|
+!10 = !{!11, !12}
|
|
|
+!11 = !{i32 0, %dx.types.Sampler addrspace(1)* undef, !"S0", i32 1, i32 0, i32 16, i32 0, null}
|
|
|
+!12 = !{i32 1, %dx.types.Sampler addrspace(1)* undef, !"S1", i32 2, i32 0, i32 16, i32 1, null}
|
|
|
+!13 = !{void ()* @main, !"main", !14, !2, null}
|
|
|
+!14 = !{null, !15, null}
|
|
|
+!15 = !{!16}
|
|
|
+!16 = !{i32 0, !"SV_Target", i8 9, i8 16, !17, i8 0, i32 1, i8 1, i32 0, i8 0, null}
|
|
|
+!17 = !{i32 0}
|
|
|
+!18 = !{!"dxbc2dxil 1.2"}
|