| // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --filter "^define |tail call" |
| // RUN: %clang_cc1 -triple loongarch64 -emit-llvm -O2 %s -o - | FileCheck %s |
| |
| typedef signed char v32i8 __attribute__((vector_size(32), aligned(32))); |
| |
| // CHECK-LABEL: @test_xr0( |
| // CHECK: tail call void asm sideeffect "", "{$xr0}"(<32 x i8> undef) #[[ATTR1:[0-9]+]], !srcloc !2 |
| // |
| void test_xr0() { |
| register v32i8 a asm ("$xr0"); |
| asm ("" :: "f"(a)); |
| } |
| |
| // CHECK-LABEL: @test_xr7( |
| // CHECK: tail call void asm sideeffect "", "{$xr7}"(<32 x i8> undef) #[[ATTR1]], !srcloc !3 |
| // |
| void test_xr7() { |
| register v32i8 a asm ("$xr7"); |
| asm ("" :: "f"(a)); |
| } |
| |
| // CHECK-LABEL: @test_xr15( |
| // CHECK: tail call void asm sideeffect "", "{$xr15}"(<32 x i8> undef) #[[ATTR1]], !srcloc !4 |
| // |
| void test_xr15() { |
| register v32i8 a asm ("$xr15"); |
| asm ("" :: "f"(a)); |
| } |
| |
| // CHECK-LABEL: @test_xr31( |
| // CHECK: tail call void asm sideeffect "", "{$xr31}"(<32 x i8> undef) #[[ATTR1]], !srcloc !5 |
| // |
| void test_xr31() { |
| register v32i8 a asm ("$xr31"); |
| asm ("" :: "f"(a)); |
| } |