| // NOTE: Assertions have been autogenerated by utils/update_cc_test_checks.py UTC_ARGS: --version 3 |
| // REQUIRES: riscv-registered-target |
| // RUN: %clang_cc1 -triple riscv32 -O2 -emit-llvm %s -o - \ |
| // RUN: | FileCheck %s |
| // RUN: %clang_cc1 -triple riscv64 -O2 -emit-llvm %s -o - \ |
| // RUN: | FileCheck %s |
| |
| // Test RISC-V specific clobbered registers in inline assembly. |
| |
| // CHECK-LABEL: define {{.*}} void @test_fflags |
| // CHECK: tail call void asm sideeffect "", "~{fflags}"() |
| void test_fflags(void) { |
| asm volatile ("" :::"fflags"); |
| } |
| |
| // CHECK-LABEL: define {{.*}} void @test_frm |
| // CHECK: tail call void asm sideeffect "", "~{frm}"() |
| void test_frm(void) { |
| asm volatile ("" :::"frm"); |
| } |
| |
| // CHECK-LABEL: define {{.*}} void @test_vtype |
| // CHECK: tail call void asm sideeffect "", "~{vtype}"() |
| void test_vtype(void) { |
| asm volatile ("" :::"vtype"); |
| } |
| |
| // CHECK-LABEL: define {{.*}} void @test_vl |
| // CHECK: tail call void asm sideeffect "", "~{vl}"() |
| void test_vl(void) { |
| asm volatile ("" :::"vl"); |
| } |
| |
| // CHECK-LABEL: define {{.*}} void @test_vxsat |
| // CHECK: tail call void asm sideeffect "", "~{vxsat}"() |
| void test_vxsat(void) { |
| asm volatile ("" :::"vxsat"); |
| } |
| |
| // CHECK-LABEL: define {{.*}} void @test_vxrm |
| // CHECK: tail call void asm sideeffect "", "~{vxrm}"() |
| void test_vxrm(void) { |
| asm volatile ("" :::"vxrm"); |
| } |