diff --git a/lib/Target/README.txt b/lib/Target/README.txt index 92fc8d036dd..24fb24d3867 100644 --- a/lib/Target/README.txt +++ b/lib/Target/README.txt @@ -220,3 +220,22 @@ Doing so could allow SROA of the destination pointers. See also: http://gcc.gnu.org/bugzilla/show_bug.cgi?id=17687 //===---------------------------------------------------------------------===// + +Scalar Repl cannot currently promote this testcase to 'ret long cst': + + %struct.X = type { int, int } + %struct.Y = type { %struct.X } +ulong %bar() { + %retval = alloca %struct.Y, align 8 ; <%struct.Y*> [#uses=3] + %tmp12 = getelementptr %struct.Y* %retval, int 0, uint 0, uint 0 ; [#uses=1] + store int 0, int* %tmp12 + %tmp15 = getelementptr %struct.Y* %retval, int 0, uint 0, uint 1 ; [#uses=1] + store int 1, int* %tmp15 + %retval = cast %struct.Y* %retval to ulong* ; [#uses=1] + %retval = load ulong* %retval ; [#uses=1] + ret ulong %retval +} + +it should be extended to do so. + +//===---------------------------------------------------------------------===//