The test conjures up and returns a temp which has a struct type, and the struct has some empty/padding bytes in the middle. In C++03 these are handled as zero, so the code uses 'llvm.memset' to initialize the temp.
In C++11, the padding is handled as undef, so the code uses 'llvm.memcpy' instead, making the test fail.
I've made the test run twice, once per dialect, and check for the appropriate intrinsic.
It doesn't look like this is the point of the test, though,. so maybe hard-coding the dialect would be preferable.