[clang][modules] Don't prevent translation of FW_Private includes when explicitly...
[llvm-project.git] / llvm / test / CodeGen / Thumb2 / ifcvt-neon-deprecated.mir
blob1f5edb0c78b91bd8b8d87e58447bc4bc33198589
1 # RUN: llc -mtriple=thumbv7 -start-before=if-converter %s -o - | FileCheck %s
3 --- |
4   ; ModuleID = 'vdup-test.ll'
5   source_filename = "vdup-test.ll"
6   target datalayout = "e-m:e-p:32:32-Fi8-i64:64-v128:64:128-a:0:32-n32-S64"
7   target triple = "thumbv7"
8   
9   define arm_aapcs_vfpcc <2 x i32> @NeonVdupMul(i32 %scalar, i32 %N, <2 x i32> %vector) {
10   entry:
11     %cmp = icmp ne i32 %N, 0
12     %broadcast = insertelement <2 x i32> undef, i32 %scalar, i32 0
13     %dup = shufflevector <2 x i32> %broadcast, <2 x i32> undef, <2 x i32> zeroinitializer
14     %mul = mul <2 x i32> %dup, %vector
15     br i1 %cmp, label %select.end, label %select.false
16   
17   select.false:                                     ; preds = %entry
18     br label %select.end
19   
20   select.end:                                       ; preds = %entry, %select.false
21     %res = phi <2 x i32> [ %mul, %entry ], [ %vector, %select.false ]
22     ret <2 x i32> %res
23   }
25 ...
26 ---
27 name:            NeonVdupMul
28 alignment:       2
29 exposesReturnsTwice: false
30 legalized:       false
31 regBankSelected: false
32 selected:        false
33 failedISel:      false
34 tracksRegLiveness: true
35 hasWinCFI:       false
36 registers:       []
37 liveins:
38   - { reg: '$r0', virtual-reg: '' }
39   - { reg: '$r1', virtual-reg: '' }
40   - { reg: '$d0', virtual-reg: '' }
41 frameInfo:
42   isFrameAddressTaken: false
43   isReturnAddressTaken: false
44   hasStackMap:     false
45   hasPatchPoint:   false
46   stackSize:       0
47   offsetAdjustment: 0
48   maxAlignment:    1
49   adjustsStack:    false
50   hasCalls:        false
51   stackProtector:  ''
52   maxCallFrameSize: 0
53   cvBytesOfCalleeSavedRegisters: 0
54   hasOpaqueSPAdjustment: false
55   hasVAStart:      false
56   hasMustTailInVarArgFunc: false
57   localFrameSize:  0
58   savePoint:       ''
59   restorePoint:    ''
60 fixedStack:      []
61 stack:           []
62 callSites:       []
63 constants:       []
64 machineFunctionInfo: {}
65 body:             |
66   bb.0.entry:
67     successors: %bb.1(0x50000000), %bb.2(0x30000000)
68     liveins: $d0, $r0, $r1
69   
70     t2CMPri killed renamable $r1, 0, 14, $noreg, implicit-def $cpsr
71     t2Bcc %bb.2, 0, killed $cpsr
72   
73   bb.1:
74     successors: %bb.2(0x80000000)
75     liveins: $d0, $r0
76   
77     renamable $d16 = VDUP32d killed renamable $r0, 14, $noreg
78     ; Verify that the neon instructions haven't been conditionalized:
79     ; CHECK-LABEL: NeonVdupMul
80     ; CHECK: vdup.32
81     ; CHECK: vmul.i32
82     renamable $d0 = VMULv2i32 killed renamable $d16, killed renamable $d0, 14, $noreg
83   
84   bb.2.select.end:
85     liveins: $d0
86   
87     tBX_RET 14, $noreg, implicit $d0
89 ...