aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorChris Lattner <sabre@nondot.org>2008-02-28 17:21:27 +0000
committerChris Lattner <sabre@nondot.org>2008-02-28 17:21:27 +0000
commite29536ca8d5ddbb62187595fc4af684a85b359bb (patch)
treede04c21727f33d96ae5aa350eeedd081abe50e50
parent59c2e868ff15d77e00c89ad9591a87e84bd0665a (diff)
add a note
git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@47720 91177308-0d34-0410-b5e6-96231b3b80d8
-rw-r--r--lib/Target/README.txt19
1 files changed, 19 insertions, 0 deletions
diff --git a/lib/Target/README.txt b/lib/Target/README.txt
index 0096b0f9f4..69359dda86 100644
--- a/lib/Target/README.txt
+++ b/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() {