[AArch64,ELF] Restrict MOVZ/MOVK to non-PIC large code model (#70178)
[llvm-project.git] / llvm / test / CodeGen / VE / Scalar / inlineasm-vldvst.ll
bloba4040a0bdcebd2d490bb10c49348e55dd5a127c7
1 ; RUN: llc < %s -mtriple=ve -mattr=+vpu | FileCheck %s
3 define void @vld(ptr %p, i64 %i) nounwind {
4 ; CHECK-LABEL: vld:
5 ; CHECK:       # %bb.0:
6 ; CHECK-NEXT:    #APP
7 ; CHECK-NEXT:    lea %s2, 256
8 ; CHECK-NEXT:    #NO_APP
9 ; CHECK-NEXT:    #APP
10 ; CHECK-NEXT:    lvl %s2
11 ; CHECK-NEXT:    #NO_APP
12 ; CHECK-NEXT:    #APP
13 ; CHECK-NEXT:    vld %v0, %s1, %s0
14 ; CHECK-NEXT:    #NO_APP
15 ; CHECK-NEXT:    b.l.t (, %s10)
16   %lvl = tail call i64 asm sideeffect "lea $0, 256", "=r"() nounwind
17   tail call void asm sideeffect "lvl $0", "r"(i64 %lvl) nounwind
18   tail call <256 x double> asm sideeffect "vld $0, $2, $1", "=v,r,r"(ptr %p, i64 %i) nounwind
19   ret void
22 define void @vldvst(ptr %p, i64 %i) nounwind {
23 ; CHECK-LABEL: vldvst:
24 ; CHECK:       # %bb.0:
25 ; CHECK-NEXT:    #APP
26 ; CHECK-NEXT:    lea %s2, 256
27 ; CHECK-NEXT:    #NO_APP
28 ; CHECK-NEXT:    #APP
29 ; CHECK-NEXT:    lvl %s2
30 ; CHECK-NEXT:    #NO_APP
31 ; CHECK-NEXT:    #APP
32 ; CHECK-NEXT:    vld %v0, %s1, %s0
33 ; CHECK-NEXT:    #NO_APP
34 ; CHECK-NEXT:    #APP
35 ; CHECK-NEXT:    vst %v0, %s1, %s0
36 ; CHECK-NEXT:    #NO_APP
37 ; CHECK-NEXT:    b.l.t (, %s10)
38   %lvl = tail call i64 asm sideeffect "lea $0, 256", "=r"() nounwind
39   tail call void asm sideeffect "lvl $0", "r"(i64 %lvl) nounwind
40   %1 = tail call <256 x double> asm sideeffect "vld $0, $2, $1", "=v,r,r"(ptr %p, i64 %i) nounwind
41   tail call void asm sideeffect "vst $0, $2, $1", "v,r,r"(<256 x double> %1, ptr %p, i64 %i) nounwind
42   ret void
45 define void @vld2vst2(ptr %p, i64 %i) nounwind {
46 ; CHECK-LABEL: vld2vst2:
47 ; CHECK:       # %bb.0:
48 ; CHECK-NEXT:    #APP
49 ; CHECK-NEXT:    lea %s2, 256
50 ; CHECK-NEXT:    #NO_APP
51 ; CHECK-NEXT:    #APP
52 ; CHECK-NEXT:    lvl %s2
53 ; CHECK-NEXT:    #NO_APP
54 ; CHECK-NEXT:    #APP
55 ; CHECK-NEXT:    vld %v0, %s1, %s0
56 ; CHECK-NEXT:    #NO_APP
57 ; CHECK-NEXT:    #APP
58 ; CHECK-NEXT:    vld %v1, %s1, %s0
59 ; CHECK-NEXT:    #NO_APP
60 ; CHECK-NEXT:    #APP
61 ; CHECK-NEXT:    vst %v0, %s1, %s0
62 ; CHECK-NEXT:    #NO_APP
63 ; CHECK-NEXT:    #APP
64 ; CHECK-NEXT:    vst %v1, %s1, %s0
65 ; CHECK-NEXT:    #NO_APP
66 ; CHECK-NEXT:    b.l.t (, %s10)
67   %lvl = tail call i64 asm sideeffect "lea $0, 256", "=r"() nounwind
68   tail call void asm sideeffect "lvl $0", "r"(i64 %lvl) nounwind
69   %1 = tail call <256 x double> asm sideeffect "vld $0, $2, $1", "=v,r,r"(ptr %p, i64 %i) nounwind
70   %2 = tail call <256 x double> asm sideeffect "vld $0, $2, $1", "=v,r,r"(ptr %p, i64 %i) nounwind
71   tail call void asm sideeffect "vst $0, $2, $1", "v,r,r"(<256 x double> %1, ptr %p, i64 %i) nounwind
72   tail call void asm sideeffect "vst $0, $2, $1", "v,r,r"(<256 x double> %2, ptr %p, i64 %i) nounwind
73   ret void