Implement bswap
[llvm/msp430.git] / test / Transforms / SRETPromotion / 2008-06-05-non-call-use.ll
blob10f92efc8654f081bd0e0ab43894b2d3e695f125
1 ; This test shows an sret function that is used as an operand to a bitcast.
2 ; StructRetPromotion used to assume that a function was only used by call or
3 ; invoke instructions, making this code cause an assertion failure.
5 ; We're mainly testing for opt not to crash, but we'll check to see if the sret
6 ; attribute is still there for good measure.
7 ; RUN: llvm-as < %s | opt -sretpromotion | llvm-dis | grep sret
9 %struct.S = type <{ i32, i32 }>
11 define i32 @main() {
12 entry:
13         %bar = bitcast void (%struct.S*)* @foo to i32 ()*
14         ret i32 undef
17 define internal void @foo(%struct.S* sret) {
18 entry:
19         ret void