X-Git-Url: http://demsky.eecs.uci.edu/git/?a=blobdiff_plain;f=lib%2FTarget%2FREADME.txt;h=23572cd6bc58f1f0bda5cd7be10e25da07c8b50a;hb=4a307ecce68f90e0eebf1ded52b947816cdc2304;hp=c9f11b935cdcdee0b8ba68e061d7cf01348c12a4;hpb=4914db09a5659bbab94a1dca1df48ed728398790;p=oota-llvm.git diff --git a/lib/Target/README.txt b/lib/Target/README.txt index c9f11b935cd..23572cd6bc5 100644 --- a/lib/Target/README.txt +++ b/lib/Target/README.txt @@ -775,32 +775,6 @@ be done safely if "b" isn't modified between the strlen and memcpy of course. //===---------------------------------------------------------------------===// -define i32 @test2(float %X, float %Y) { -entry: - %tmp3 = fcmp uno float %X, %Y ; [#uses=1] - %tmp34 = zext i1 %tmp3 to i8 ; [#uses=1] - %tmp = xor i8 %tmp34, 1 ; [#uses=1] - %toBoolnot5 = zext i8 %tmp to i32 ; [#uses=1] - ret i32 %toBoolnot5 -} - -could be optimized further. Instcombine should use its bitwise analysis to -collapse the zext/xor/zext structure to an xor/zext and then remove the -xor by reversing the fcmp. - -Desired output: - -define i32 @test2(float %X, float %Y) { -entry: - %tmp3 = fcmp ord float %X, %Y ; [#uses=1] - %tmp34 = zext i1 %tmp3 to i32 ; [#uses=1] - ret i32 %tmp34 -} - -To fix this, we need to make CanEvaluateInDifferentType smarter. - -//===---------------------------------------------------------------------===// - We should be able to evaluate this loop: int test(int x_offs) {