This workaround doesn't list any llvm version, but it was introduced
2010-06-10 (
e277d5c1f6b2c5a6d202561e67d2b6821a69ecc4). It is unlikely
this bug is still present in llvm versions we support (3.1+).
There's no specific test listed, but I ran lp_test_arit (which uses
the mentioned functions) on llvm 3.1 and 3.3 with sse41 disabled and
this pass enabled without issues.
Reviewed-by: Jose Fonseca <jfonseca@vmware.com>
LLVMAddReassociatePass(gallivm->passmgr);
LLVMAddPromoteMemoryToRegisterPass(gallivm->passmgr);
LLVMAddConstantPropagationPass(gallivm->passmgr);
-
- if (util_cpu_caps.has_sse4_1) {
- /* FIXME: There is a bug in this pass, whereby the combination
- * of fptosi and sitofp (necessary for trunc/floor/ceil/round
- * implementation) somehow becomes invalid code.
- */
- LLVMAddInstructionCombiningPass(gallivm->passmgr);
- }
+ LLVMAddInstructionCombiningPass(gallivm->passmgr);
LLVMAddGVNPass(gallivm->passmgr);
}
else {