Skip to content

Instantly share code, notes, and snippets.

@jvoorhis
Created April 7, 2011 05:41
Show Gist options
  • Select an option

  • Save jvoorhis/907108 to your computer and use it in GitHub Desktop.

Select an option

Save jvoorhis/907108 to your computer and use it in GitHub Desktop.
LLVM bytecode dump from Siren fm.rb
; ModuleID = 'Siren'
%0 = type { float, float, float, float, float }
declare float @powf(float, float)
declare float @sinf(float)
declare float @cosf(float)
declare float @tanf(float)
define float @render_2160090900(float, float, i64, %0*) {
entry:
%4 = getelementptr inbounds %0* %3, i32 0, i32 0
%5 = getelementptr inbounds %0* %3, i32 0, i32 1
%6 = getelementptr inbounds %0* %3, i32 0, i32 2
%7 = getelementptr inbounds %0* %3, i32 0, i32 3
%8 = getelementptr inbounds %0* %3, i32 0, i32 4
%9 = load float* %7
%10 = fmul float 0x3FD3333340000000, %9
%11 = fcmp olt float %1, 0.000000e+00
%12 = select i1 %11, float 0.000000e+00, float 1.000000e+00
%13 = fsub float %1, 0x3F847AE140000000
%14 = fcmp olt float %13, 0.000000e+00
%15 = select i1 %14, float 0.000000e+00, float 1.000000e+00
%16 = fsub float 1.000000e+00, %15
%17 = fmul float %12, %16
%18 = fmul float %17, %1
%19 = fdiv float %18, 0x3F847AE140000000
%20 = fsub float %1, 0x3F847AE140000000
%21 = fcmp olt float %20, 0.000000e+00
%22 = select i1 %21, float 0.000000e+00, float 1.000000e+00
%23 = load float* %6
%24 = fsub float %1, %23
%25 = fadd float %24, 0x3FC99999A0000000
%26 = fcmp olt float %25, 0.000000e+00
%27 = select i1 %26, float 0.000000e+00, float 1.000000e+00
%28 = fsub float 1.000000e+00, %27
%29 = fmul float %22, %28
%30 = fsub float %1, 0x3F847AE140000000
%31 = fdiv float %30, 1.500000e+01
%32 = fsub float 1.000000e+00, %31
%33 = fmul float %29, %32
%34 = fadd float %19, %33
%35 = load float* %6
%36 = fsub float %1, %35
%37 = fadd float %36, 0x3FC99999A0000000
%38 = fcmp olt float %37, 0.000000e+00
%39 = select i1 %38, float 0.000000e+00, float 1.000000e+00
%40 = load float* %6
%41 = fsub float %1, %40
%42 = fcmp olt float %41, 0.000000e+00
%43 = select i1 %42, float 0.000000e+00, float 1.000000e+00
%44 = fsub float 1.000000e+00, %43
%45 = fmul float %39, %44
%46 = fsub float %1, 0x3F847AE140000000
%47 = fdiv float %46, 1.500000e+01
%48 = fsub float 1.000000e+00, %47
%49 = fmul float %45, %48
%50 = load float* %6
%51 = fsub float %1, %50
%52 = fadd float %51, 0x3FC99999A0000000
%53 = fdiv float %52, 0x3FC99999A0000000
%54 = fsub float 1.000000e+00, %53
%55 = fmul float %49, %54
%56 = fadd float %34, %55
%57 = fmul float %10, %56
%58 = load float* %4
%59 = fmul float 0x401921FB60000000, %58
%60 = fmul float %59, %1
%61 = load float* %8
%62 = fcmp olt float %1, 0.000000e+00
%63 = select i1 %62, float 0.000000e+00, float 1.000000e+00
%64 = fsub float %1, 0x3F847AE140000000
%65 = fcmp olt float %64, 0.000000e+00
%66 = select i1 %65, float 0.000000e+00, float 1.000000e+00
%67 = fsub float 1.000000e+00, %66
%68 = fmul float %63, %67
%69 = fmul float %68, %1
%70 = fdiv float %69, 0x3F847AE140000000
%71 = fsub float %1, 0x3F847AE140000000
%72 = fcmp olt float %71, 0.000000e+00
%73 = select i1 %72, float 0.000000e+00, float 1.000000e+00
%74 = fsub float %1, 3.000000e+00
%75 = fadd float %74, 0x3F847AE140000000
%76 = fcmp olt float %75, 0.000000e+00
%77 = select i1 %76, float 0.000000e+00, float 1.000000e+00
%78 = fsub float 1.000000e+00, %77
%79 = fmul float %73, %78
%80 = fsub float %1, 0x3F847AE140000000
%81 = fdiv float %80, 3.000000e+00
%82 = fsub float 1.000000e+00, %81
%83 = fmul float %79, %82
%84 = fadd float %70, %83
%85 = fsub float %1, 3.000000e+00
%86 = fadd float %85, 0x3F847AE140000000
%87 = fcmp olt float %86, 0.000000e+00
%88 = select i1 %87, float 0.000000e+00, float 1.000000e+00
%89 = fsub float %1, 3.000000e+00
%90 = fcmp olt float %89, 0.000000e+00
%91 = select i1 %90, float 0.000000e+00, float 1.000000e+00
%92 = fsub float 1.000000e+00, %91
%93 = fmul float %88, %92
%94 = fsub float %1, 0x3F847AE140000000
%95 = fdiv float %94, 3.000000e+00
%96 = fsub float 1.000000e+00, %95
%97 = fmul float %93, %96
%98 = fsub float %1, 3.000000e+00
%99 = fadd float %98, 0x3F847AE140000000
%100 = fdiv float %99, 0x3F847AE140000000
%101 = fsub float 1.000000e+00, %100
%102 = fmul float %97, %101
%103 = fadd float %84, %102
%104 = fmul float 1.000000e+00, %103
%105 = fmul float %61, %104
%106 = load float* %4
%107 = fmul float 0x401921FB60000000, %106
%108 = load float* %5
%109 = fmul float %107, %108
%110 = fmul float %109, %1
%111 = load float* %8
%112 = fcmp olt float %1, 0.000000e+00
%113 = select i1 %112, float 0.000000e+00, float 1.000000e+00
%114 = fsub float %1, 0x3F847AE140000000
%115 = fcmp olt float %114, 0.000000e+00
%116 = select i1 %115, float 0.000000e+00, float 1.000000e+00
%117 = fsub float 1.000000e+00, %116
%118 = fmul float %113, %117
%119 = fmul float %118, %1
%120 = fdiv float %119, 0x3F847AE140000000
%121 = fsub float %1, 0x3F847AE140000000
%122 = fcmp olt float %121, 0.000000e+00
%123 = select i1 %122, float 0.000000e+00, float 1.000000e+00
%124 = fsub float %1, 0x3FB99999A0000000
%125 = fadd float %124, 0x3F847AE140000000
%126 = fcmp olt float %125, 0.000000e+00
%127 = select i1 %126, float 0.000000e+00, float 1.000000e+00
%128 = fsub float 1.000000e+00, %127
%129 = fmul float %123, %128
%130 = fsub float %1, 0x3F847AE140000000
%131 = fdiv float %130, 0x3FB99999A0000000
%132 = fsub float 1.000000e+00, %131
%133 = fmul float %129, %132
%134 = fadd float %120, %133
%135 = fsub float %1, 0x3FB99999A0000000
%136 = fadd float %135, 0x3F847AE140000000
%137 = fcmp olt float %136, 0.000000e+00
%138 = select i1 %137, float 0.000000e+00, float 1.000000e+00
%139 = fsub float %1, 0x3FB99999A0000000
%140 = fcmp olt float %139, 0.000000e+00
%141 = select i1 %140, float 0.000000e+00, float 1.000000e+00
%142 = fsub float 1.000000e+00, %141
%143 = fmul float %138, %142
%144 = fsub float %1, 0x3F847AE140000000
%145 = fdiv float %144, 0x3FB99999A0000000
%146 = fsub float 1.000000e+00, %145
%147 = fmul float %143, %146
%148 = fsub float %1, 0x3FB99999A0000000
%149 = fadd float %148, 0x3F847AE140000000
%150 = fdiv float %149, 0x3F847AE140000000
%151 = fsub float 1.000000e+00, %150
%152 = fmul float %147, %151
%153 = fadd float %134, %152
%154 = fmul float 5.000000e-01, %153
%155 = fmul float %111, %154
%156 = fmul float 0x40B5993400000000, %1
%157 = call float @sinf(float %156)
%158 = fmul float %155, %157
%159 = fadd float %110, %158
%160 = call float @sinf(float %159)
%161 = fmul float %105, %160
%162 = fadd float %60, %161
%163 = call float @sinf(float %162)
%164 = fmul float %57, %163
%165 = sitofp i64 %2 to float
%166 = fadd float %165, 0x400921FB60000000
%167 = fmul float %166, 2.000000e+00
%168 = fmul float %167, 0x400921FB60000000
%169 = fmul float %168, 0x3FE947AE20000000
%170 = fmul float %169, %0
%171 = call float @sinf(float %170)
%172 = fmul float 0x3FD3333340000000, %171
%173 = fadd float %172, 0x3FE6666660000000
%174 = fmul float %164, %173
ret float %174
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment