rjmccall added a comment. Just a few comment suggestions, but functionally LGTM.
================ Comment at: lib/CodeGen/CGBuiltin.cpp:246 @@ -244,1 +245,3 @@ + // On little-Endian, high-double will be in low part of i128. + // Therefore, on big-Endian we shift high part to low part. Width >>= 1; ---------------- Hmm, let's merge these the old and new comments a bit: We want the sign bit of the higher-order double. The bitcast we just did works as if the double-double was stored to memory and then read as an i128. The "store" will put the higher-order double in the lower address in both little- and big-Endian modes, but the "load" will treat those bits as a different part of the i128: the low bits in little-Endian, the high bits in big-Endian. Therefore, on big-Endian we need to shift the high bits down to the low before truncating. ================ Comment at: lib/CodeGen/CGBuiltin.cpp:252 @@ +251,3 @@ + } + // After we have high-dobule in the low part of i128 + // we need to truncate it to extract the sign. ---------------- Typo: dobule. Also, we're not quite extracting the sign yet; we're truncating as a way to extract the higher-order double, which we'll extract the sign from in a second. Repository: rL LLVM http://reviews.llvm.org/D14149 _______________________________________________ cfe-commits mailing list cfe-commits@lists.llvm.org http://lists.llvm.org/cgi-bin/mailman/listinfo/cfe-commits