diff options
author | Chris Lattner <sabre@nondot.org> | 2010-12-13 00:15:25 +0000 |
---|---|---|
committer | Chris Lattner <sabre@nondot.org> | 2010-12-13 00:15:25 +0000 |
commit | a97c91f014248ce47886f2d950795ffb61bc73b3 (patch) | |
tree | 5999f364941965b9301a526cb929090685c73d4f | |
parent | 638f7a9a5e7caf05c8871afe6d27a5bdd2dd4ac2 (diff) |
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@121656 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r-- | lib/Target/README.txt | 36 |
1 files changed, 36 insertions, 0 deletions
diff --git a/lib/Target/README.txt b/lib/Target/README.txt index 35273344d7..836e74e6bc 100644 --- a/lib/Target/README.txt +++ b/lib/Target/README.txt @@ -1973,3 +1973,39 @@ _foo: ## @foo //===---------------------------------------------------------------------===// +This code (from GCC PR28685): + +int test(int a, int b) { + int lt = a < b; + int eq = a == b; + if (lt) + return 1; + return eq; +} + +Is compiled to: + +define i32 @test(i32 %a, i32 %b) nounwind readnone ssp { +entry: + %cmp = icmp slt i32 %a, %b + br i1 %cmp, label %return, label %if.end + +if.end: ; preds = %entry + %cmp5 = icmp eq i32 %a, %b + %conv6 = zext i1 %cmp5 to i32 + ret i32 %conv6 + +return: ; preds = %entry + ret i32 1 +} + +it could be: + +define i32 @test__(i32 %a, i32 %b) nounwind readnone ssp { +entry: + %0 = icmp sle i32 %a, %b + %retval = zext i1 %0 to i32 + ret i32 %retval +} + +//===---------------------------------------------------------------------===// |