eliminate the "MBBLabel" MCOperand type, and just use a MCSymbol for
[llvm/avr.git] / test / Transforms / ScalarRepl / 2009-03-04-MemCpyAlign.ll
blobd6eb75bdf8011f9f95a9b54ca9a69a248ccfe20d
1 ; The store into %p should end up with a known alignment of 1, since the memcpy
2 ; is only known to access it with 1-byte alignment.
3 ; RUN: opt < %s -scalarrepl -S | grep {store i16 1, .*, align 1}
4 ; PR3720
6         %struct.st = type { i16 }
8 define void @f(i8* %p) nounwind {
9 entry:
10         %s = alloca %struct.st, align 4  ; <%struct.st*> [#uses=2]
11         %0 = getelementptr %struct.st* %s, i32 0, i32 0  ; <i16*> [#uses=1]
12         store i16 1, i16* %0, align 4
13         %s1 = bitcast %struct.st* %s to i8*  ; <i8*> [#uses=1]
14         call void @llvm.memcpy.i32(i8* %p, i8* %s1, i32 2, i32 1)
15         ret void
18 declare void @llvm.memcpy.i32(i8* nocapture, i8* nocapture, i32, i32) nounwind