[WebAssembly] Don't perform the returned-argument optimization on constants.
[oota-llvm.git] / test / CodeGen / ARM / 2012-04-02-TwoAddrInstrCrash.ll
1 ; RUN: llc < %s
2 ; PR11861
3 target datalayout = "e-p:32:32:32-i1:8:8-i8:8:8-i16:16:16-i32:32:32-i64:64:64-f32:32:32-f64:64:64-v64:64:64-v128:64:128-a0:0:64-n32-S64"
4 target triple = "armv7-none-linux-gnueabi"
5
6 define arm_aapcs_vfpcc void @foo() nounwind align 2 {
7   br i1 undef, label %5, label %1
8
9 ; <label>:1                                       ; preds = %0
10   %2 = shufflevector <1 x i64> zeroinitializer, <1 x i64> undef, <2 x i32> <i32 0, i32 1>
11   %3 = bitcast <2 x i64> %2 to <4 x float>
12   store <4 x float> zeroinitializer, <4 x float>* undef, align 16
13   store <4 x float> zeroinitializer, <4 x float>* undef, align 16
14   store <4 x float> %3, <4 x float>* undef, align 16
15   %4 = insertelement <4 x float> %3, float 8.000000e+00, i32 2
16   store <4 x float> %4, <4 x float>* undef, align 16
17   unreachable
18
19 ; <label>:5                                       ; preds = %0
20   ret void
21 }