[WebAssembly] Don't perform the returned-argument optimization on constants.
[oota-llvm.git] / test / CodeGen / ARM / flag-crash.ll
1 ; RUN: llc < %s -O3 -mtriple=thumbv7-apple-darwin10 -mcpu=cortex-a8 -relocation-model=pic
2 ; PR7484
3
4 %struct.gs_matrix = type { float, i32, float, i32, float, i32, float, i32, float, i32, float, i32 }
5
6 define fastcc void @func(%struct.gs_matrix* nocapture %pm1) nounwind {
7 entry:
8   %0 = getelementptr inbounds %struct.gs_matrix, %struct.gs_matrix* %pm1, i32 0, i32 6
9   %1 = load float, float* %0, align 4
10   %2 = getelementptr inbounds %struct.gs_matrix, %struct.gs_matrix* %pm1, i32 0, i32 8
11   %3 = load float, float* %2, align 4
12   %4 = getelementptr inbounds %struct.gs_matrix, %struct.gs_matrix* %pm1, i32 0, i32 2
13   %5 = bitcast float* %4 to i32*
14   %6 = load i32, i32* %5, align 4
15   %7 = or i32 0, %6
16   %.mask = and i32 %7, 2147483647
17   %8 = icmp eq i32 %.mask, 0
18   br i1 %8, label %bb, label %bb11
19
20 bb:
21   ret void
22
23 bb11:
24   %9 = fmul float %1, undef
25   %10 = fmul float %3, undef
26   ret void
27 }