[ARM] Adjust how NEON shifts are lowered
[llvm-core.git] / test / CodeGen / X86 / dagcombine-tokenfactor-limit-crash.ll
blob412eb7126f5febff1a9230050335ba3a5b3202a3
1 ; RUN: llc %s -combiner-tokenfactor-inline-limit=5 -o - | FileCheck %s
3 target datalayout = "e-m:e-i64:64-f80:128-n8:16:32:64-S128"
4 target triple = "x86_64-unknown-linux-gnu"
6 %struct.snork = type { i8 }
7 %struct.wombat = type { [15 x i32] }
9 ; CHECK:          pushq   %rbx
10 ; CHECK-NEXT:     andq    $-32, %rsp
11 ; CHECK-NEXT:     subq    $66144, %rsp            # imm = 0x10260
12 ; CHECK-NEXT:     .cfi_offset %rbx, -24
13 ; CHECK-NEXT:     movabsq $-868076584853899022, %rax # imm = 0xF3F3F8F201F2F8F2
14 ; CHECK-NEXT:     movq    %rax, (%rsp)
15 ; CHECK-NEXT:     movb    $-13, 8263(%rsp)
16 ; CHECK-NEXT:     movq    %rdi, %rbx
17 ; CHECK-NEXT:     callq   hoge
18 ; CHECK-NEXT:     movq    %rbx, %rdi
19 ; CHECK-NEXT:     callq   hoge
20 ; CHECK-NEXT:     callq   hoge
21 ; CHECK-NEXT:     callq   hoge
22 ; CHECK-NEXT:     callq   eggs
23 ; CHECK-NEXT:     callq   hoge
24 ; CHECK-NEXT:     movq    %rbx, %rax
25 ; CHECK-NEXT:     leaq    -8(%rbp), %rsp
26 ; CHECK-NEXT:     popq    %rbx
27 ; CHECK-NEXT:     popq    %rbp
28 ; CHECK-NEXT:    .cfi_def_cfa %rsp, 8
29 ; CHECK-NEXT:    retq
30 define void @spam(%struct.snork* noalias sret %arg, %struct.snork* %arg2) {
31 bb:
32   %tmp = alloca i8, i64 66112, align 32
33   %tmp7 = ptrtoint i8* %tmp to i64
34   %tmp914 = inttoptr i64 undef to %struct.wombat*
35   %tmp915 = inttoptr i64 undef to %struct.snork*
36   %tmp916 = inttoptr i64 undef to %struct.snork*
37   %tmp917 = inttoptr i64 undef to %struct.wombat*
38   %tmp918 = inttoptr i64 undef to %struct.snork*
39   %tmp921 = inttoptr i64 undef to %struct.snork*
40   %tmp2055 = inttoptr i64 %tmp7 to i64*
41   store i64 -868076584853899022, i64* %tmp2055, align 1
42   %tmp2056 = add i64 %tmp7, 8263
43   %tmp2057 = inttoptr i64 %tmp2056 to i8*
44   store i8 -13, i8* %tmp2057, align 1
45   br label %bb2058
47 bb2058:                                           ; preds = %bb
48   call void @hoge(%struct.snork* %arg)
49   call void @hoge(%struct.snork* %arg)
50   call void @hoge(%struct.snork* %tmp915)
51   call void @hoge(%struct.snork* %tmp916)
52   call void @eggs(%struct.snork* %tmp918, %struct.wombat* %tmp914, %struct.wombat* %tmp917)
53   call void @hoge(%struct.snork* %tmp921)
54   ret void
57 declare void @hoge(%struct.snork*)
59 declare void @eggs(%struct.snork*, %struct.wombat*, %struct.wombat*)