• Home
  • Line#
  • Scopes#
  • Navigate#
  • Raw
  • Download
1# RUN: llc -mtriple=thumbv7 -start-before=if-converter -o - %s | FileCheck %s
2---
3name:            NeonVdupMul
4body:             |
5  bb.0:
6    successors: %bb.2, %bb.1
7    liveins: $d0, $r0, $r1
8
9    t2CMPri killed $r1, 0, 14, $noreg, implicit-def $cpsr
10    t2Bcc %bb.2, 0, killed $cpsr
11
12  bb.1:
13    liveins: $d0, $r0
14
15    $d16 = VDUP32d killed $r0, 14, $noreg
16    ; Verify that the neon instructions haven't been conditionalized:
17    ; CHECK-LABEL: NeonVdupMul
18    ; CHECK: vdup.32
19    ; CHECK: vmul.i32
20    $d0 = VMULv2i32 killed $d16, killed $d0, 14, $noreg
21
22  bb.2:
23    liveins: $d0
24
25    tBX_RET 14, $noreg, implicit $d0
26
27...
28---
29name:            NeonVmovVfpLdr
30body:             |
31  bb.0.entry:
32    successors: %bb.1, %bb.2
33    liveins: $r0, $r1
34
35    t2CMPri killed $r1, 0, 14, $noreg, implicit-def $cpsr
36    t2Bcc %bb.2, 1, killed $cpsr
37
38  bb.1:
39    $d0 = VMOVv2i32 0, 14, $noreg
40    tBX_RET 14, $noreg, implicit $d0
41
42  bb.2:
43    liveins: $r0
44
45    $d0 = VLDRD killed $r0, 0, 14, $noreg
46    ; Verify that the neon instruction VMOVv2i32 hasn't been conditionalized,
47    ; but the VLDR instruction that is available both in the VFP and Advanced
48    ; SIMD extensions has.
49    ; CHECK-LABEL: NeonVmovVfpLdr
50    ; CHECK-DAG: vmov.i32 d0, #0x0
51    ; CHECK-DAG: vldr{{ne|eq}} d0, [r0]
52    tBX_RET 14, $noreg, implicit $d0
53
54...
55