xref: /llvm-project/clang/test/CodeGen/VE/ve-inline-asm.c (revision 39db5e1ed87363a9ffea81e53520b542201b3262)
1 // REQUIRES: ve-registered-target
2 // RUN: %clang_cc1 -triple ve-linux-gnu -emit-llvm -o - %s | FileCheck %s
3 
r(long v)4 void r(long v) {
5   long b;
6   asm("lea %0, 256(%1)"
7       : "=r"(b)
8       : "r"(v));
9   // CHECK: %1 = call i64 asm "lea $0, 256($1)", "=r,r"(i64 %0)
10 }
11 
v(char * ptr,char * ptr2)12 void v(char *ptr, char *ptr2) {
13   typedef double __vr __attribute__((__vector_size__(2048)));
14   __vr a;
15   asm("vld %0, 8, %1"
16       : "=v"(a)
17       : "r"(ptr));
18   asm("vst %0, 8, %1"
19       :
20       : "v"(a), "r"(ptr2));
21   // CHECK: %1 = call <256 x double> asm "vld $0, 8, $1", "=v,r"(ptr %0)
22   // CHECK: call void asm sideeffect "vst $0, 8, $1", "v,r"(<256 x double> %2, ptr %3)
23 }
24