| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585 |
- ; ModuleID = 'dxil_cleanup\phibug.ll'
- %dx.types.Handle = type { i8* }
- %dx.types.ResRet.i32 = type { i32, i32, i32, i32, i32 }
- %dx.types.CBufRet.f32 = type { float, float, float, float }
- %dx.types.ResRet.f32 = type { float, float, float, float, i32 }
- %dx.types.f32 = type { float }
- %dx.types.i8x48 = type { [48 x i8] }
- %dx.types.i8x4 = type { [4 x i8] }
- %dx.types.i8x16 = type { [16 x i8] }
- %dx.types.i8x32 = type { [32 x i8] }
- @TGSM0 = internal addrspace(3) global [2048 x i8] undef, align 4
- @llvm.used = appending global [1 x i8*] [i8* addrspacecast (i8 addrspace(3)* getelementptr inbounds ([2048 x i8], [2048 x i8] addrspace(3)* @TGSM0, i32 0, i32 0) to i8*)], section "llvm.metadata"
- define void @main() {
- entry:
- %0 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 0, i32 0, i1 false)
- %1 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 0, i32 1, i32 1, i1 false)
- %2 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 1, i32 0, i32 0, i1 false)
- %3 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 0, i32 0, i1 false)
- %4 = call %dx.types.Handle @dx.op.createHandle(i32 57, i8 2, i32 1, i32 1, i1 false)
- %5 = call i32 @dx.op.groupId.i32(i32 94, i32 0)
- %6 = call i32 @dx.op.threadIdInGroup.i32(i32 95, i32 0)
- %7 = call i32 @dx.op.tertiary.i32(i32 48, i32 %5, i32 64, i32 %6)
- %8 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %7, i32 0)
- %9 = extractvalue %dx.types.ResRet.i32 %8, 0
- %10 = call float @dx.op.bitcastI32toF32(i32 126, i32 %9)
- %11 = extractvalue %dx.types.ResRet.i32 %8, 1
- %12 = call float @dx.op.bitcastI32toF32(i32 126, i32 %11)
- %13 = extractvalue %dx.types.ResRet.i32 %8, 2
- %14 = call float @dx.op.bitcastI32toF32(i32 126, i32 %13)
- %15 = extractvalue %dx.types.ResRet.i32 %8, 3
- %16 = call float @dx.op.bitcastI32toF32(i32 126, i32 %15)
- %17 = call %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32 68, %dx.types.Handle %1, i32 %7, i32 16)
- %18 = extractvalue %dx.types.ResRet.i32 %17, 0
- %19 = extractvalue %dx.types.ResRet.i32 %17, 1
- %20 = extractvalue %dx.types.ResRet.i32 %17, 2
- %21 = extractvalue %dx.types.ResRet.i32 %17, 3
- %22 = icmp slt i32 %18, 18
- %23 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %3, i32 0)
- %24 = extractvalue %dx.types.CBufRet.f32 %23, 0
- %25 = extractvalue %dx.types.CBufRet.f32 %23, 1
- %26 = fmul fast float %14, %24
- %27 = fmul fast float %16, %25
- %28 = call float @dx.op.dot2.f32(i32 54, float %26, float %27, float %26, float %27)
- %29 = call float @dx.op.unary.f32(i32 25, float %28)
- %30 = fmul fast float %29, %26
- %31 = fmul fast float %29, %27
- %32 = select i1 %22, i32 128, i32 -128
- %33 = select i1 %22, i32 0, i32 1
- %34 = select i1 %22, i32 -128, i32 128
- %35 = call i32 @dx.op.quaternary.i32(i32 53, i32 31, i32 1, i32 %21, i32 %33)
- %36 = icmp sge i32 0, %20
- br i1 %36, label %if0.then, label %if0.end
- if0.then: ; preds = %entry
- call void @dx.op.bufferStore.i32(i32 69, %dx.types.Handle %2, i32 %35, i32 0, i32 -1140821790, i32 undef, i32 undef, i32 undef, i8 1)
- %37 = add i32 %32, %35
- br label %if0.end
- if0.end: ; preds = %if0.then, %entry
- %dx.v32.r0.0 = phi i32 [ %37, %if0.then ], [ %35, %entry ]
- %38 = call float @dx.op.tertiary.f32(i32 46, float %10, float 1.000000e+00, float 0.000000e+00)
- %39 = call float @dx.op.tertiary.f32(i32 46, float %12, float -1.000000e+00, float 1.000000e+00)
- %40 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %3, i32 0)
- %41 = extractvalue %dx.types.CBufRet.f32 %40, 0
- %42 = extractvalue %dx.types.CBufRet.f32 %40, 1
- %43 = fmul fast float %38, %41
- %44 = fmul fast float %39, %42
- %45 = fptosi float %43 to i32
- %46 = fptosi float %44 to i32
- %47 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %3, i32 0)
- %48 = extractvalue %dx.types.CBufRet.f32 %47, 0
- %49 = extractvalue %dx.types.CBufRet.f32 %47, 1
- %50 = fptosi float %48 to i32
- %51 = fptosi float %49 to i32
- %52 = add i32 %50, -1
- %53 = add i32 %51, -1
- %54 = call i32 @dx.op.binary.i32(i32 37, i32 %45, i32 0)
- %55 = call i32 @dx.op.binary.i32(i32 37, i32 %46, i32 0)
- %56 = call i32 @dx.op.binary.i32(i32 38, i32 %52, i32 %54)
- %57 = call i32 @dx.op.binary.i32(i32 38, i32 %53, i32 %55)
- %58 = call %dx.types.ResRet.f32 @dx.op.textureLoad.f32(i32 66, %dx.types.Handle %0, i32 0, i32 %56, i32 %57, i32 undef, i32 0, i32 0, i32 undef)
- %59 = extractvalue %dx.types.ResRet.f32 %58, 0
- %60 = uitofp i32 %56 to float
- %61 = uitofp i32 %57 to float
- %62 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 0)
- %63 = extractvalue %dx.types.CBufRet.f32 %62, 2
- %64 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 1)
- %65 = extractvalue %dx.types.CBufRet.f32 %64, 0
- %66 = call float @dx.op.tertiary.f32(i32 46, float %63, float %60, float %65)
- %67 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 0)
- %68 = extractvalue %dx.types.CBufRet.f32 %67, 3
- %69 = fsub fast float -0.000000e+00, %68
- %70 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 1)
- %71 = extractvalue %dx.types.CBufRet.f32 %70, 1
- %72 = fsub fast float -0.000000e+00, %71
- %73 = call float @dx.op.tertiary.f32(i32 46, float %69, float %61, float %72)
- %74 = fmul fast float %59, %66
- %75 = fmul fast float %59, %73
- %76 = fsub fast float -0.000000e+00, %31
- %77 = fsub fast float -0.000000e+00, %75
- %78 = call float @dx.op.dot2.f32(i32 54, float %30, float %76, float %74, float %77)
- %79 = call i32 @dx.op.bitcastF32toI32(i32 127, float %78)
- %80 = fadd fast float %14, %10
- %81 = fadd fast float %16, %12
- %82 = add i32 %20, -1
- %83 = add i32 %19, -2
- %84 = icmp sge i32 0, %82
- br i1 %84, label %if1.then, label %if1.end
- if1.then: ; preds = %if0.end
- %85 = call float @dx.op.binary.f32(i32 35, float %78, float -6.550400e+04)
- %86 = call float @dx.op.binary.f32(i32 35, float %59, float -6.550400e+04)
- %87 = call float @dx.op.binary.f32(i32 36, float %85, float 6.550400e+04)
- %88 = call float @dx.op.binary.f32(i32 36, float %86, float 6.550400e+04)
- %89 = call i32 @dx.op.legacyF32ToF16(i32 130, float %87)
- %90 = call i32 @dx.op.legacyF32ToF16(i32 130, float %88)
- %91 = call i32 @dx.op.tertiary.i32(i32 48, i32 %90, i32 65536, i32 %89)
- call void @dx.op.bufferStore.i32(i32 69, %dx.types.Handle %2, i32 %dx.v32.r0.0, i32 0, i32 %91, i32 undef, i32 undef, i32 undef, i8 1)
- %92 = add i32 %32, %dx.v32.r0.0
- br label %if1.end
- if1.end: ; preds = %if1.then, %if0.end
- %dx.v32.r0.1 = phi i32 [ %92, %if1.then ], [ %dx.v32.r0.0, %if0.end ]
- %93 = add i32 %34, %dx.v32.r0.1
- %94 = fsub fast float -0.000000e+00, %81
- %95 = fadd fast float %94, 1.000000e+00
- %96 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %3, i32 0)
- %97 = extractvalue %dx.types.CBufRet.f32 %96, 0
- %98 = extractvalue %dx.types.CBufRet.f32 %96, 1
- %99 = fmul fast float %80, %97
- %100 = fmul fast float %95, %98
- %101 = fptosi float %99 to i32
- %102 = fptosi float %100 to i32
- %103 = call i32 @dx.op.binary.i32(i32 37, i32 %101, i32 0)
- %104 = call i32 @dx.op.binary.i32(i32 37, i32 %102, i32 0)
- %105 = call i32 @dx.op.binary.i32(i32 38, i32 %52, i32 %103)
- %106 = call i32 @dx.op.binary.i32(i32 38, i32 %53, i32 %104)
- %107 = call %dx.types.ResRet.f32 @dx.op.textureLoad.f32(i32 66, %dx.types.Handle %0, i32 0, i32 %105, i32 %106, i32 undef, i32 0, i32 0, i32 undef)
- %108 = extractvalue %dx.types.ResRet.f32 %107, 0
- %109 = call i32 @dx.op.bitcastF32toI32(i32 127, float %108)
- %110 = uitofp i32 %105 to float
- %111 = uitofp i32 %106 to float
- %112 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 0)
- %113 = extractvalue %dx.types.CBufRet.f32 %112, 2
- %114 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 1)
- %115 = extractvalue %dx.types.CBufRet.f32 %114, 0
- %116 = call float @dx.op.tertiary.f32(i32 46, float %113, float %110, float %115)
- %117 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 0)
- %118 = extractvalue %dx.types.CBufRet.f32 %117, 3
- %119 = fsub fast float -0.000000e+00, %118
- %120 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 1)
- %121 = extractvalue %dx.types.CBufRet.f32 %120, 1
- %122 = fsub fast float -0.000000e+00, %121
- %123 = call float @dx.op.tertiary.f32(i32 46, float %119, float %111, float %122)
- %124 = fmul fast float %108, %116
- %125 = fmul fast float %108, %123
- %126 = fsub fast float -0.000000e+00, %125
- %127 = call float @dx.op.dot2.f32(i32 54, float %30, float %76, float %124, float %126)
- %128 = call i32 @dx.op.bitcastF32toI32(i32 127, float %127)
- %129 = fadd fast float %14, %80
- %130 = fadd fast float %16, %81
- %131 = call i32 @dx.op.threadIdInGroup.i32(i32 95, i32 0)
- %132 = shl i32 %131, 2
- %133 = call i32 @dx.op.bitcastF32toI32(i32 127, float %59)
- %134 = call float @dx.op.bitcastI32toF32(i32 126, i32 -1082130432)
- br label %loop0
- loop0: ; preds = %if3.end, %if1.end
- %dx.v32.r14.0 = phi i32 [ %93, %if1.end ], [ %230, %if3.end ]
- %dx.v32.r18.0 = phi float [ %129, %if1.end ], [ %227, %if3.end ]
- %dx.v32.r19.0 = phi float [ %130, %if1.end ], [ %228, %if3.end ]
- %dx.v32.r28.0 = phi i32 [ %128, %if1.end ], [ %211, %if3.end ]
- %dx.v32.r29.0 = phi i32 [ %109, %if1.end ], [ %213, %if3.end ]
- %dx.v32.r29.01 = phi float [ %108, %if1.end ], [ %385, %if3.end ]
- %dx.v32.r32.0 = phi i32 [ %79, %if1.end ], [ %dx.v32.r32.1, %if3.end ]
- %dx.v32.r33.0 = phi i32 [ %133, %if1.end ], [ %dx.v32.r33.1, %if3.end ]
- %dx.v32.r33.03 = phi float [ %59, %if1.end ], [ %dx.v32.r33.12, %if3.end ]
- %dx.v32.r30.0 = phi i32 [ 1176256512, %if1.end ], [ %dx.v32.r30.1, %if3.end ]
- %dx.v32.r31.0 = phi i32 [ -1082130432, %if1.end ], [ %dx.v32.r31.1, %if3.end ]
- %dx.v32.r31.05 = phi float [ %134, %if1.end ], [ %dx.v32.r31.14, %if3.end ]
- %dx.v32.r11.0 = phi i32 [ %83, %if1.end ], [ %229, %if3.end ]
- %dx.v32.r34.0 = phi i32 [ 1, %if1.end ], [ %369, %if3.end ]
- %135 = icmp sge i32 0, %dx.v32.r11.0
- br i1 %135, label %loop0.end, label %loop0.breakc0
- loop0.breakc0: ; preds = %loop0
- %136 = call float @dx.op.tertiary.f32(i32 46, float %dx.v32.r18.0, float 1.000000e+00, float 0.000000e+00)
- %137 = call float @dx.op.tertiary.f32(i32 46, float %dx.v32.r19.0, float -1.000000e+00, float 1.000000e+00)
- %138 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %3, i32 0)
- %139 = extractvalue %dx.types.CBufRet.f32 %138, 0
- %140 = extractvalue %dx.types.CBufRet.f32 %138, 1
- %141 = fmul fast float %136, %139
- %142 = fmul fast float %137, %140
- %143 = fptosi float %141 to i32
- %144 = fptosi float %142 to i32
- %145 = call i32 @dx.op.binary.i32(i32 37, i32 %143, i32 0)
- %146 = call i32 @dx.op.binary.i32(i32 37, i32 %144, i32 0)
- %147 = call i32 @dx.op.binary.i32(i32 38, i32 %52, i32 %145)
- %148 = call i32 @dx.op.binary.i32(i32 38, i32 %53, i32 %146)
- %149 = call %dx.types.ResRet.f32 @dx.op.textureLoad.f32(i32 66, %dx.types.Handle %0, i32 0, i32 %147, i32 %148, i32 undef, i32 0, i32 0, i32 undef)
- %150 = extractvalue %dx.types.ResRet.f32 %149, 0
- %151 = uitofp i32 %147 to float
- %152 = uitofp i32 %148 to float
- %153 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 0)
- %154 = extractvalue %dx.types.CBufRet.f32 %153, 2
- %155 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 1)
- %156 = extractvalue %dx.types.CBufRet.f32 %155, 0
- %157 = call float @dx.op.tertiary.f32(i32 46, float %154, float %151, float %156)
- %158 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 0)
- %159 = extractvalue %dx.types.CBufRet.f32 %158, 3
- %160 = fsub fast float -0.000000e+00, %159
- %161 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 1)
- %162 = extractvalue %dx.types.CBufRet.f32 %161, 1
- %163 = fsub fast float -0.000000e+00, %162
- %164 = call float @dx.op.tertiary.f32(i32 46, float %160, float %152, float %163)
- %165 = fmul fast float %150, %157
- %166 = fmul fast float %150, %164
- %167 = fsub fast float -0.000000e+00, %166
- %168 = call float @dx.op.dot2.f32(i32 54, float %30, float %76, float %165, float %167)
- %169 = fsub fast float -0.000000e+00, %14
- %170 = fsub fast float -0.000000e+00, %16
- %171 = call float @dx.op.tertiary.f32(i32 46, float %169, float 5.000000e-01, float %dx.v32.r18.0)
- %172 = call float @dx.op.tertiary.f32(i32 46, float %170, float 5.000000e-01, float %dx.v32.r19.0)
- %173 = fsub fast float -0.000000e+00, %172
- %174 = fadd fast float %173, 1.000000e+00
- %175 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %3, i32 0)
- %176 = extractvalue %dx.types.CBufRet.f32 %175, 0
- %177 = extractvalue %dx.types.CBufRet.f32 %175, 1
- %178 = fmul fast float %171, %176
- %179 = fmul fast float %174, %177
- %180 = fptosi float %178 to i32
- %181 = fptosi float %179 to i32
- %182 = call i32 @dx.op.binary.i32(i32 37, i32 %180, i32 0)
- %183 = call i32 @dx.op.binary.i32(i32 37, i32 %181, i32 0)
- %184 = call i32 @dx.op.binary.i32(i32 38, i32 %52, i32 %182)
- %185 = call i32 @dx.op.binary.i32(i32 38, i32 %53, i32 %183)
- %186 = call %dx.types.ResRet.f32 @dx.op.textureLoad.f32(i32 66, %dx.types.Handle %0, i32 0, i32 %184, i32 %185, i32 undef, i32 0, i32 0, i32 undef)
- %187 = extractvalue %dx.types.ResRet.f32 %186, 0
- %188 = uitofp i32 %184 to float
- %189 = uitofp i32 %185 to float
- %190 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 0)
- %191 = extractvalue %dx.types.CBufRet.f32 %190, 2
- %192 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 1)
- %193 = extractvalue %dx.types.CBufRet.f32 %192, 0
- %194 = call float @dx.op.tertiary.f32(i32 46, float %191, float %188, float %193)
- %195 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 0)
- %196 = extractvalue %dx.types.CBufRet.f32 %195, 3
- %197 = fsub fast float -0.000000e+00, %196
- %198 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 1)
- %199 = extractvalue %dx.types.CBufRet.f32 %198, 1
- %200 = fsub fast float -0.000000e+00, %199
- %201 = call float @dx.op.tertiary.f32(i32 46, float %197, float %189, float %200)
- %202 = fmul fast float %187, %194
- %203 = fmul fast float %187, %201
- %204 = fsub fast float -0.000000e+00, %203
- %205 = call float @dx.op.dot2.f32(i32 54, float %30, float %76, float %202, float %204)
- %206 = fcmp fast olt float %187, %150
- %207 = call i32 @dx.op.bitcastF32toI32(i32 127, float %205)
- %208 = call i32 @dx.op.bitcastF32toI32(i32 127, float %187)
- %209 = call i32 @dx.op.bitcastF32toI32(i32 127, float %168)
- %210 = call i32 @dx.op.bitcastF32toI32(i32 127, float %150)
- %211 = select i1 %206, i32 %207, i32 %209
- %212 = call float @dx.op.bitcastI32toF32(i32 126, i32 %211)
- %213 = select i1 %206, i32 %208, i32 %210
- %214 = call float @dx.op.bitcastI32toF32(i32 126, i32 %213)
- %215 = fmul fast float %214, 0x3FEFD70A40000000
- %216 = fmul fast float %214, 0x3FEFD70A40000000
- %217 = fsub fast float -0.000000e+00, %212
- %218 = fsub fast float -0.000000e+00, %216
- %219 = fsub fast float -0.000000e+00, %212
- %220 = fsub fast float -0.000000e+00, %216
- %221 = call float @dx.op.dot2.f32(i32 54, float %217, float %218, float %219, float %220)
- %222 = call float @dx.op.unary.f32(i32 25, float %221)
- %223 = fsub fast float -0.000000e+00, %212
- %224 = fsub fast float -0.000000e+00, %216
- %225 = fmul fast float %222, %223
- %226 = fmul fast float %222, %224
- %227 = fadd fast float %14, %dx.v32.r18.0
- %228 = fadd fast float %16, %dx.v32.r19.0
- %229 = add i32 %dx.v32.r11.0, -1
- %230 = add i32 %32, %dx.v32.r14.0
- %231 = call float @dx.op.bitcastI32toF32(i32 126, i32 %dx.v32.r28.0)
- %232 = call float @dx.op.bitcastI32toF32(i32 126, i32 %dx.v32.r29.0)
- %233 = fsub fast float -0.000000e+00, %212
- %234 = fsub fast float -0.000000e+00, %216
- %235 = fadd fast float %231, %233
- %236 = fadd fast float %232, %234
- %237 = call float @dx.op.bitcastI32toF32(i32 126, i32 %dx.v32.r32.0)
- %238 = call float @dx.op.bitcastI32toF32(i32 126, i32 %dx.v32.r33.0)
- %239 = fsub fast float -0.000000e+00, %212
- %240 = fsub fast float -0.000000e+00, %216
- %241 = fadd fast float %237, %239
- %242 = fadd fast float %238, %240
- %243 = call float @dx.op.dot2.f32(i32 54, float %235, float %236, float %235, float %236)
- %244 = call float @dx.op.unary.f32(i32 25, float %243)
- %245 = fmul fast float %244, %235
- %246 = fmul fast float %244, %236
- %247 = call float @dx.op.dot2.f32(i32 54, float %225, float %226, float %245, float %246)
- %248 = fadd fast float %247, 1.000000e+00
- %249 = call float @dx.op.dot2.f32(i32 54, float %241, float %242, float %241, float %242)
- %250 = call float @dx.op.unary.f32(i32 25, float %249)
- %251 = fmul fast float %250, %241
- %252 = fmul fast float %250, %242
- %253 = call float @dx.op.dot2.f32(i32 54, float %225, float %226, float %251, float %252)
- %254 = fadd fast float %253, 1.000000e+00
- %255 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 0)
- %256 = extractvalue %dx.types.CBufRet.f32 %255, 1
- %257 = call float @dx.op.tertiary.f32(i32 46, float %256, float %243, float %215)
- %258 = fdiv fast float %215, %257
- %259 = call float @dx.op.binary.f32(i32 36, float %258, float 0x3FECCCCCC0000000)
- %260 = fmul fast float %259, %248
- %261 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 0)
- %262 = extractvalue %dx.types.CBufRet.f32 %261, 1
- %263 = call float @dx.op.tertiary.f32(i32 46, float %262, float %249, float %215)
- %264 = fdiv fast float %215, %263
- %265 = call float @dx.op.binary.f32(i32 36, float %264, float 0x3FECCCCCC0000000)
- %266 = fmul fast float %265, %254
- %267 = icmp ne i32 %dx.v32.r34.0, 0
- %268 = sext i1 %267 to i32
- %269 = fcmp fast oge float %266, %260
- %270 = sext i1 %269 to i32
- %271 = and i32 %270, %268
- %272 = fcmp fast oge float %254, %248
- %273 = sext i1 %272 to i32
- %274 = and i32 %271, %273
- %275 = icmp ne i32 %274, 0
- br i1 %275, label %if2.then, label %if2.else
- if2.then: ; preds = %loop0.breakc0
- %276 = add i32 %dx.v32.r34.0, -1
- %277 = call float @dx.op.bitcastI32toF32(i32 126, i32 %dx.v32.r30.0)
- %278 = call float @dx.op.bitcastI32toF32(i32 126, i32 %dx.v32.r31.0)
- %279 = fsub fast float -0.000000e+00, %212
- %280 = fsub fast float -0.000000e+00, %216
- %281 = fadd fast float %277, %279
- %282 = fadd fast float %278, %280
- %283 = call float @dx.op.dot2.f32(i32 54, float %281, float %282, float %281, float %282)
- %284 = call float @dx.op.unary.f32(i32 25, float %283)
- %285 = fmul fast float %284, %281
- %286 = fmul fast float %284, %282
- %287 = call float @dx.op.dot2.f32(i32 54, float %225, float %226, float %285, float %286)
- %288 = fadd fast float %287, 1.000000e+00
- %289 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 0)
- %290 = extractvalue %dx.types.CBufRet.f32 %289, 1
- %291 = call float @dx.op.tertiary.f32(i32 46, float %290, float %283, float %215)
- %292 = fdiv fast float %215, %291
- %293 = call float @dx.op.binary.f32(i32 36, float %292, float 0x3FECCCCCC0000000)
- %294 = fmul fast float %293, %288
- %295 = fmul fast float %214, 0x3FEFD70A40000000
- %296 = call float @dx.op.bitcastI32toF32(i32 126, i32 %dx.v32.r32.0)
- %297 = call float @dx.op.bitcastI32toF32(i32 126, i32 %dx.v32.r33.0)
- %298 = call i32 @dx.op.bitcastF32toI32(i32 127, float %254)
- %299 = call i32 @dx.op.bitcastF32toI32(i32 127, float %266)
- %300 = call i32 @dx.op.bitcastF32toI32(i32 127, float %288)
- %301 = call i32 @dx.op.bitcastF32toI32(i32 127, float %294)
- %302 = call float @dx.op.bitcastI32toF32(i32 126, i32 %211)
- br label %loop1
- loop1: ; preds = %loop1.breakc0, %if2.then
- %dx.v32.r34.1 = phi i32 [ %276, %if2.then ], [ %319, %loop1.breakc0 ]
- %dx.v32.r42.0 = phi float [ %296, %if2.then ], [ %348, %loop1.breakc0 ]
- %dx.v32.r43.0 = phi float [ %297, %if2.then ], [ %349, %loop1.breakc0 ]
- %dx.v32.r46.0 = phi i32 [ %dx.v32.r30.0, %if2.then ], [ %350, %loop1.breakc0 ]
- %dx.v32.r47.0 = phi i32 [ %dx.v32.r31.0, %if2.then ], [ %351, %loop1.breakc0 ]
- %dx.v32.r47.06 = phi float [ %dx.v32.r31.05, %if2.then ], [ %330, %loop1.breakc0 ]
- %dx.v32.r48.0 = phi i32 [ %298, %if2.then ], [ %dx.v32.r52.0, %loop1.breakc0 ]
- %dx.v32.r49.0 = phi i32 [ %299, %if2.then ], [ %dx.v32.r53.0, %loop1.breakc0 ]
- %dx.v32.r52.0 = phi i32 [ %300, %if2.then ], [ %352, %loop1.breakc0 ]
- %dx.v32.r53.0 = phi i32 [ %301, %if2.then ], [ %353, %loop1.breakc0 ]
- %dx.v32.r50.0 = phi i32 [ 6, %if2.then ], [ %331, %loop1.breakc0 ]
- %303 = icmp ne i32 %dx.v32.r50.0, 0
- %304 = sext i1 %303 to i32
- %305 = icmp ne i32 %dx.v32.r34.1, 0
- %306 = sext i1 %305 to i32
- %307 = and i32 %304, %306
- %308 = call float @dx.op.bitcastI32toF32(i32 126, i32 %dx.v32.r53.0)
- %309 = call float @dx.op.bitcastI32toF32(i32 126, i32 %dx.v32.r52.0)
- %310 = call float @dx.op.bitcastI32toF32(i32 126, i32 %dx.v32.r49.0)
- %311 = call float @dx.op.bitcastI32toF32(i32 126, i32 %dx.v32.r48.0)
- %312 = fcmp fast oge float %308, %310
- %313 = fcmp fast oge float %309, %311
- %314 = sext i1 %312 to i32
- %315 = sext i1 %313 to i32
- %316 = and i32 %307, %314
- %317 = and i32 %315, %316
- %318 = icmp eq i32 %317, 0
- br i1 %318, label %loop1.end, label %loop1.breakc0
- loop1.breakc0: ; preds = %loop1
- %319 = add i32 %dx.v32.r34.1, -1
- %320 = and i32 %319, 7
- %321 = mul i32 %320, 256
- %322 = add i32 %321, %132
- %323 = getelementptr [2048 x i8], [2048 x i8] addrspace(3)* @TGSM0, i32 0, i32 %322
- %324 = bitcast i8 addrspace(3)* %323 to float addrspace(3)*
- %325 = load float, float addrspace(3)* %324, align 4
- %326 = call i32 @dx.op.bitcastF32toI32(i32 127, float %325)
- %327 = and i32 %326, 65535
- %328 = lshr i32 %326, 16
- %329 = call float @dx.op.legacyF16ToF32(i32 131, i32 %327)
- %330 = call float @dx.op.legacyF16ToF32(i32 131, i32 %328)
- %331 = add i32 %dx.v32.r50.0, -1
- %332 = fsub fast float -0.000000e+00, %302
- %333 = fsub fast float -0.000000e+00, %295
- %334 = fadd fast float %332, %329
- %335 = fadd fast float %333, %330
- %336 = call float @dx.op.dot2.f32(i32 54, float %334, float %335, float %334, float %335)
- %337 = call float @dx.op.unary.f32(i32 25, float %336)
- %338 = fmul fast float %334, %337
- %339 = fmul fast float %335, %337
- %340 = call float @dx.op.dot2.f32(i32 54, float %225, float %226, float %338, float %339)
- %341 = fadd fast float %340, 1.000000e+00
- %342 = call %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32 59, %dx.types.Handle %4, i32 0)
- %343 = extractvalue %dx.types.CBufRet.f32 %342, 1
- %344 = call float @dx.op.tertiary.f32(i32 46, float %343, float %336, float %215)
- %345 = fdiv fast float %215, %344
- %346 = call float @dx.op.binary.f32(i32 36, float %345, float 0x3FECCCCCC0000000)
- %347 = fmul fast float %346, %341
- %348 = call float @dx.op.bitcastI32toF32(i32 126, i32 %dx.v32.r46.0)
- %349 = call float @dx.op.bitcastI32toF32(i32 126, i32 %dx.v32.r47.0)
- %350 = call i32 @dx.op.bitcastF32toI32(i32 127, float %329)
- %351 = call i32 @dx.op.bitcastF32toI32(i32 127, float %330)
- %352 = call i32 @dx.op.bitcastF32toI32(i32 127, float %341)
- %353 = call i32 @dx.op.bitcastF32toI32(i32 127, float %347)
- br label %loop1
- loop1.end: ; preds = %loop1
- %354 = call i32 @dx.op.bitcastF32toI32(i32 127, float %dx.v32.r42.0)
- %355 = call i32 @dx.op.bitcastF32toI32(i32 127, float %dx.v32.r43.0)
- br label %if2.end
- if2.else: ; preds = %loop0.breakc0
- br label %if2.end
- if2.end: ; preds = %if2.else, %loop1.end
- %dx.v32.r32.1 = phi i32 [ %354, %loop1.end ], [ %dx.v32.r28.0, %if2.else ]
- %dx.v32.r33.1 = phi i32 [ %355, %loop1.end ], [ %dx.v32.r29.0, %if2.else ]
- %dx.v32.r33.12 = phi float [ %dx.v32.r43.0, %loop1.end ], [ %dx.v32.r29.01, %if2.else ]
- %dx.v32.r30.1 = phi i32 [ %dx.v32.r46.0, %loop1.end ], [ %dx.v32.r32.0, %if2.else ]
- %dx.v32.r31.1 = phi i32 [ %dx.v32.r47.0, %loop1.end ], [ %dx.v32.r33.0, %if2.else ]
- %dx.v32.r31.14 = phi float [ %dx.v32.r47.06, %loop1.end ], [ %dx.v32.r33.03, %if2.else ]
- %dx.v32.r34.2 = phi i32 [ %dx.v32.r34.1, %loop1.end ], [ %dx.v32.r34.0, %if2.else ]
- %dx.v32.r50.1 = phi i32 [ %dx.v32.r50.0, %loop1.end ], [ 7, %if2.else ]
- %356 = call i32 @dx.op.bitcastF32toI32(i32 127, float %dx.v32.r33.12)
- %357 = icmp eq i32 %dx.v32.r50.1, 7
- br i1 %357, label %if3.then, label %if3.end
- if3.then: ; preds = %if2.end
- %358 = and i32 %dx.v32.r34.2, 7
- %359 = call float @dx.op.bitcastI32toF32(i32 126, i32 %dx.v32.r30.1)
- %360 = call float @dx.op.bitcastI32toF32(i32 126, i32 %dx.v32.r31.1)
- %361 = call i32 @dx.op.legacyF32ToF16(i32 130, float %359)
- %362 = call i32 @dx.op.legacyF32ToF16(i32 130, float %360)
- %363 = call i32 @dx.op.tertiary.i32(i32 48, i32 %362, i32 65536, i32 %361)
- %364 = call float @dx.op.bitcastI32toF32(i32 126, i32 %363)
- %365 = mul i32 %358, 256
- %366 = add i32 %365, %132
- %367 = getelementptr [2048 x i8], [2048 x i8] addrspace(3)* @TGSM0, i32 0, i32 %366
- %368 = bitcast i8 addrspace(3)* %367 to float addrspace(3)*
- store float %364, float addrspace(3)* %368, align 4
- br label %if3.end
- if3.end: ; preds = %if3.then, %if2.end
- %369 = add i32 %dx.v32.r34.2, 1
- %370 = call float @dx.op.bitcastI32toF32(i32 126, i32 %dx.v32.r33.1)
- %371 = fcmp fast olt float %214, %370
- %372 = select i1 %371, i32 %211, i32 %dx.v32.r32.1
- %373 = select i1 %371, i32 %213, i32 %dx.v32.r33.1
- %374 = select i1 %206, i32 %372, i32 %dx.v32.r32.1
- %375 = call float @dx.op.bitcastI32toF32(i32 126, i32 %374)
- %376 = select i1 %206, i32 %373, i32 %356
- %377 = call float @dx.op.bitcastI32toF32(i32 126, i32 %376)
- %378 = call float @dx.op.binary.f32(i32 35, float %375, float -6.550400e+04)
- %379 = call float @dx.op.binary.f32(i32 35, float %377, float -6.550400e+04)
- %380 = call float @dx.op.binary.f32(i32 36, float %378, float 6.550400e+04)
- %381 = call float @dx.op.binary.f32(i32 36, float %379, float 6.550400e+04)
- %382 = call i32 @dx.op.legacyF32ToF16(i32 130, float %380)
- %383 = call i32 @dx.op.legacyF32ToF16(i32 130, float %381)
- %384 = call i32 @dx.op.tertiary.i32(i32 48, i32 %383, i32 65536, i32 %382)
- call void @dx.op.bufferStore.i32(i32 69, %dx.types.Handle %2, i32 %230, i32 0, i32 %384, i32 undef, i32 undef, i32 undef, i8 1)
- %385 = call float @dx.op.bitcastI32toF32(i32 126, i32 %213)
- br label %loop0
- loop0.end: ; preds = %loop0
- ret void
- }
- ; Function Attrs: nounwind readonly
- declare %dx.types.Handle @dx.op.createHandle(i32, i8, i32, i32, i1) #0
- ; Function Attrs: nounwind readnone
- declare i32 @dx.op.tertiary.i32(i32, i32, i32, i32) #1
- ; Function Attrs: nounwind readnone
- declare i32 @dx.op.groupId.i32(i32, i32) #1
- ; Function Attrs: nounwind readnone
- declare i32 @dx.op.threadIdInGroup.i32(i32, i32) #1
- ; 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 %dx.types.ResRet.i32 @dx.op.bufferLoad.i32(i32, %dx.types.Handle, i32, i32) #0
- ; Function Attrs: nounwind readonly
- declare float @dx.op.tempRegLoad.f32(i32, i32) #0
- ; Function Attrs: nounwind readonly
- declare %dx.types.CBufRet.f32 @dx.op.cbufferLoadLegacy.f32(i32, %dx.types.Handle, i32) #0
- ; Function Attrs: nounwind
- declare void @dx.op.tempRegStore.f32(i32, i32, float) #2
- ; Function Attrs: nounwind readnone
- declare float @dx.op.dot2.f32(i32, float, float, float, float) #1
- ; Function Attrs: nounwind readnone
- declare float @dx.op.unary.f32(i32, float) #1
- ; Function Attrs: nounwind readnone
- declare i32 @dx.op.quaternary.i32(i32, i32, i32, i32, i32) #1
- ; Function Attrs: nounwind
- declare void @dx.op.bufferStore.i32(i32, %dx.types.Handle, i32, i32, i32, i32, i32, i32, i8) #2
- ; Function Attrs: nounwind readnone
- declare float @dx.op.tertiary.f32(i32, float, float, float) #1
- ; Function Attrs: nounwind readnone
- declare i32 @dx.op.binary.i32(i32, i32, i32) #1
- ; Function Attrs: nounwind readonly
- declare %dx.types.ResRet.f32 @dx.op.textureLoad.f32(i32, %dx.types.Handle, i32, i32, i32, i32, i32, i32, i32) #0
- ; Function Attrs: nounwind readnone
- declare float @dx.op.binary.f32(i32, float, float) #1
- ; Function Attrs: nounwind readnone
- declare i32 @dx.op.legacyF32ToF16(i32, float) #1
- ; Function Attrs: nounwind readnone
- declare float @dx.op.legacyF16ToF32(i32, i32) #1
- ; 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 = !{!14}
- !llvm.ident = !{!17}
- !0 = !{i32 1, i32 0}
- !1 = !{!"cs", i32 6, i32 0}
- !2 = !{!3, !8, !11, null}
- !3 = !{!4, !6}
- !4 = !{i32 0, %dx.types.f32 addrspace(1)* undef, !"T0", i32 0, i32 0, i32 1, i32 2, i32 0, !5}
- !5 = !{i32 0, i32 9}
- !6 = !{i32 1, %dx.types.i8x48 addrspace(1)* undef, !"T1", i32 0, i32 1, i32 1, i32 12, i32 0, !7}
- !7 = !{i32 1, i32 48}
- !8 = !{!9}
- !9 = !{i32 0, %dx.types.i8x4 addrspace(1)* undef, !"U0", i32 0, i32 0, i32 1, i32 12, i1 false, i1 false, i1 false, !10}
- !10 = !{i32 1, i32 4}
- !11 = !{!12, !13}
- !12 = !{i32 0, %dx.types.i8x16 addrspace(2)* undef, !"CB0", i32 0, i32 0, i32 1, i32 16, null}
- !13 = !{i32 1, %dx.types.i8x32 addrspace(2)* undef, !"CB1", i32 0, i32 1, i32 1, i32 32, null}
- !14 = !{void ()* @main, !"main", null, !2, !15}
- !15 = !{i32 4, !16}
- !16 = !{i32 64, i32 1, i32 1}
- !17 = !{!"dxbc2dxil 1.0"}
|