diff options
| author | Chris Lattner <sabre@nondot.org> | 2008-02-28 17:21:27 +0000 |
|---|---|---|
| committer | Chris Lattner <sabre@nondot.org> | 2008-02-28 17:21:27 +0000 |
| commit | 643dce11465bb7e5278eb8dfd66890fefb51c108 (patch) | |
| tree | 812207e598be5647b4fef2f26483ee9ee802787c | |
| parent | e28886a9134333a2cdbff2db5017c51c304a1fe4 (diff) | |
| download | bcm5719-llvm-643dce11465bb7e5278eb8dfd66890fefb51c108.tar.gz bcm5719-llvm-643dce11465bb7e5278eb8dfd66890fefb51c108.zip | |
add a note
llvm-svn: 47720
| -rw-r--r-- | llvm/lib/Target/README.txt | 19 |
1 files changed, 19 insertions, 0 deletions
diff --git a/llvm/lib/Target/README.txt b/llvm/lib/Target/README.txt index 0096b0f9f42..69359dda864 100644 --- a/llvm/lib/Target/README.txt +++ b/llvm/lib/Target/README.txt @@ -631,6 +631,25 @@ implementations of ceil/floor/rint. //===---------------------------------------------------------------------===// +This GCC bug: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=34043 +contains a testcase that compiles down to: + + %struct.XMM128 = type { <4 x float> } +.. + %src = alloca %struct.XMM128 +.. + %tmp6263 = bitcast %struct.XMM128* %src to <2 x i64>* + %tmp65 = getelementptr %struct.XMM128* %src, i32 0, i32 0 + store <2 x i64> %tmp5899, <2 x i64>* %tmp6263, align 16 + %tmp66 = load <4 x float>* %tmp65, align 16 + %tmp71 = add <4 x float> %tmp66, %tmp66 + +If the mid-level optimizer turned the bitcast of pointer + store of tmp5899 +into a bitcast of the vector value and a store to the pointer, then the +store->load could be easily removed. + +//===---------------------------------------------------------------------===// + Consider: int test() { |

