Thanks, that should help. This isn't my area of expertise, but at least we can use this to file a bug upstream. (In reply to Aaron Puchert from comment #4) > Nevertheless, some initial remarks: ARMISD::VCMPZ is a "Vector compare to > zero." [1] It should correspond to "vcmpe" in assembly [2]. The first > argument being a v4i32 is slightly suspicious. I would have expected a > v4f32, but since they live in the same registers maybe the backend doesn't > care. The second is a Constant:i32<2> = ARMCC::CondCodes::HS, corresponding > to conditional execution only if the carry flag is set, if I understand this > correctly. [3,4] Seems I was misreading that, the condition code is for the comparison itself. For floating-point ARMCC::CondCodes::HS means ">, ==, or unordered", so we're doing a !(... < 0.0f) comparison. Likely corresponds to one of the fcmp ..., zeroinitializer in the IR.