[WebAssembly] Don't perform the returned-argument optimization on constants.
[oota-llvm.git] / test / CodeGen / ARM / 2010-10-25-ifcvt-ldm.ll
1 ; RUN: llc < %s -mtriple=armv6-apple-darwin -mcpu=arm1136jf-s -arm-atomic-cfg-tidy=0 | FileCheck %s
2 ; Radar 8589805: Counting the number of microcoded operations, such as for an
3 ; LDM instruction, was causing an assertion failure because the microop count
4 ; was being treated as an instruction count.
5
6 ; CHECK: push
7 ; CHECK: pop
8 ; CHECK: pop
9 ; CHECK: pop
10
11 define i32 @test(i32 %x) {
12 entry:
13   %0 = tail call signext i16 undef(i32* undef)
14   switch i32 %x, label %bb3 [
15     i32 0, label %bb4
16     i32 1, label %bb1
17     i32 2, label %bb2
18   ]
19
20 bb1:
21   ret i32 1
22
23 bb2:
24   ret i32 2
25
26 bb3:
27   ret i32 1
28
29 bb4:
30   ret i32 3
31 }