AppendStructuredBuffer alignment?

I’m getting some strange behaviour reading back the contents of an AppendStructuredBuffer. On my x86 build, it works fine, but on x64, it looks like the individual words are in the wrong order. So for example, if I write out uint4(4, 3, 2, 1) ten times, I get:

4 3 2 1
4 3 2 1
4 3 2 1
4 3 2 1
4 3 2 1
4 3 2 1
4 3 2 1
4 3 2 1
4 3 2 1
4 3 2 1

but if I write uint3(3, 2, 1) I get something like:

0 0 0
0 0 0
2 1 3
2 1 0
2 1 3
3 2 1
3 2 1
3 2 1
1 3 2
1 3 2

I can’t find anything in the d3d docs mentioning alignment, and I don’t get anything from d3d debug. For now I’ll pad it out to 16 bytes, but I’d like to know if I was doing something wrong.

I’m running a 660 Ti with driver 331.58 on windows 8.

Cheers