Progress on casting

Read over the source code and the CastisValid function at line 2628 of Instructions.cpp seems to indicate that llvm only supports casting between floats and ints if they have the same bit length. This is my initial (and inelegant) attempt at supporting this. Any ideas on how to do the final intermediate cast (commented out) in a concise manner?