26
26
let TargetPrefix = "riscv" in {
27
27
28
28
// T @llvm.<name>.T.<p>(any*, T, T, T imm);
29
- class MaskedAtomicRMWFourArg <LLVMType itype>
29
+ class RISCVMaskedAtomicRMWFourArg <LLVMType itype>
30
30
: Intrinsic<[itype], [llvm_anyptr_ty, itype, itype, itype],
31
31
[IntrArgMemOnly, NoCapture<ArgIndex<0>>, ImmArg<ArgIndex<3>>]>;
32
32
// T @llvm.<name>.T.<p>(any*, T, T, T, T imm);
33
- class MaskedAtomicRMWFiveArg <LLVMType itype>
33
+ class RISCVMaskedAtomicRMWFiveArg <LLVMType itype>
34
34
: Intrinsic<[itype], [llvm_anyptr_ty, itype, itype, itype, itype],
35
35
[IntrArgMemOnly, NoCapture<ArgIndex<0>>, ImmArg<ArgIndex<4>>]>;
36
36
37
37
// We define 32-bit and 64-bit variants of the above, where T stands for i32
38
38
// or i64 respectively:
39
- multiclass MaskedAtomicRMWFourArgIntrinsics {
39
+ multiclass RISCVMaskedAtomicRMWFourArgIntrinsics {
40
40
// i32 @llvm.<name>.i32.<p>(any*, i32, i32, i32 imm);
41
- def _i32 : MaskedAtomicRMWFourArg <llvm_i32_ty>;
41
+ def _i32 : RISCVMaskedAtomicRMWFourArg <llvm_i32_ty>;
42
42
// i64 @llvm.<name>.i32.<p>(any*, i64, i64, i64 imm);
43
- def _i64 : MaskedAtomicRMWFourArg <llvm_i64_ty>;
43
+ def _i64 : RISCVMaskedAtomicRMWFourArg <llvm_i64_ty>;
44
44
}
45
45
46
- multiclass MaskedAtomicRMWFiveArgIntrinsics {
46
+ multiclass RISCVMaskedAtomicRMWFiveArgIntrinsics {
47
47
// i32 @llvm.<name>.i32.<p>(any*, i32, i32, i32, i32 imm);
48
- def _i32 : MaskedAtomicRMWFiveArg <llvm_i32_ty>;
48
+ def _i32 : RISCVMaskedAtomicRMWFiveArg <llvm_i32_ty>;
49
49
// i64 @llvm.<name>.i64.<p>(any*, i64, i64, i64, i64 imm);
50
- def _i64 : MaskedAtomicRMWFiveArg <llvm_i64_ty>;
50
+ def _i64 : RISCVMaskedAtomicRMWFiveArg <llvm_i64_ty>;
51
51
}
52
52
53
53
// These intrinsics are intended only for internal compiler use (i.e. as
@@ -56,21 +56,21 @@ let TargetPrefix = "riscv" in {
56
56
57
57
// @llvm.riscv.masked.atomicrmw.*.{i32,i64}.<p>(
58
58
// ptr addr, ixlen oparg, ixlen mask, ixlenimm ordering)
59
- defm int_riscv_masked_atomicrmw_xchg : MaskedAtomicRMWFourArgIntrinsics ;
60
- defm int_riscv_masked_atomicrmw_add : MaskedAtomicRMWFourArgIntrinsics ;
61
- defm int_riscv_masked_atomicrmw_sub : MaskedAtomicRMWFourArgIntrinsics ;
62
- defm int_riscv_masked_atomicrmw_nand : MaskedAtomicRMWFourArgIntrinsics ;
63
- defm int_riscv_masked_atomicrmw_umax : MaskedAtomicRMWFourArgIntrinsics ;
64
- defm int_riscv_masked_atomicrmw_umin : MaskedAtomicRMWFourArgIntrinsics ;
59
+ defm int_riscv_masked_atomicrmw_xchg : RISCVMaskedAtomicRMWFourArgIntrinsics ;
60
+ defm int_riscv_masked_atomicrmw_add : RISCVMaskedAtomicRMWFourArgIntrinsics ;
61
+ defm int_riscv_masked_atomicrmw_sub : RISCVMaskedAtomicRMWFourArgIntrinsics ;
62
+ defm int_riscv_masked_atomicrmw_nand : RISCVMaskedAtomicRMWFourArgIntrinsics ;
63
+ defm int_riscv_masked_atomicrmw_umax : RISCVMaskedAtomicRMWFourArgIntrinsics ;
64
+ defm int_riscv_masked_atomicrmw_umin : RISCVMaskedAtomicRMWFourArgIntrinsics ;
65
65
// Signed min and max need an extra operand to do sign extension with.
66
66
// @llvm.riscv.masked.atomicrmw.{max,min}.{i32,i64}.<p>(
67
67
// ptr addr, ixlen oparg, ixlen mask, ixlen shamt, ixlenimm ordering)
68
- defm int_riscv_masked_atomicrmw_max : MaskedAtomicRMWFiveArgIntrinsics ;
69
- defm int_riscv_masked_atomicrmw_min : MaskedAtomicRMWFiveArgIntrinsics ;
68
+ defm int_riscv_masked_atomicrmw_max : RISCVMaskedAtomicRMWFiveArgIntrinsics ;
69
+ defm int_riscv_masked_atomicrmw_min : RISCVMaskedAtomicRMWFiveArgIntrinsics ;
70
70
71
71
// @llvm.riscv.masked.cmpxchg.{i32,i64}.<p>(
72
72
// ptr addr, ixlen cmpval, ixlen newval, ixlen mask, ixlenimm ordering)
73
- defm int_riscv_masked_cmpxchg : MaskedAtomicRMWFiveArgIntrinsics ;
73
+ defm int_riscv_masked_cmpxchg : RISCVMaskedAtomicRMWFiveArgIntrinsics ;
74
74
75
75
} // TargetPrefix = "riscv"
76
76
@@ -79,33 +79,33 @@ let TargetPrefix = "riscv" in {
79
79
80
80
let TargetPrefix = "riscv" in {
81
81
82
- class BitManipGPRIntrinsics
82
+ class RISCVBitManipGPRIntrinsics
83
83
: DefaultAttrsIntrinsic<[llvm_any_ty],
84
84
[LLVMMatchType<0>],
85
85
[IntrNoMem, IntrSpeculatable]>;
86
- class BitManipGPRGPRIntrinsics
86
+ class RISCVBitManipGPRGPRIntrinsics
87
87
: DefaultAttrsIntrinsic<[llvm_any_ty],
88
88
[LLVMMatchType<0>, LLVMMatchType<0>],
89
89
[IntrNoMem, IntrSpeculatable]>;
90
90
91
91
// Zbb
92
- def int_riscv_orc_b : BitManipGPRIntrinsics ;
92
+ def int_riscv_orc_b : RISCVBitManipGPRIntrinsics ;
93
93
94
94
// Zbc or Zbkc
95
- def int_riscv_clmul : BitManipGPRGPRIntrinsics ;
96
- def int_riscv_clmulh : BitManipGPRGPRIntrinsics ;
95
+ def int_riscv_clmul : RISCVBitManipGPRGPRIntrinsics ;
96
+ def int_riscv_clmulh : RISCVBitManipGPRGPRIntrinsics ;
97
97
98
98
// Zbc
99
- def int_riscv_clmulr : BitManipGPRGPRIntrinsics ;
99
+ def int_riscv_clmulr : RISCVBitManipGPRGPRIntrinsics ;
100
100
101
101
// Zbkb
102
- def int_riscv_brev8 : BitManipGPRIntrinsics ;
103
- def int_riscv_zip : BitManipGPRIntrinsics ;
104
- def int_riscv_unzip : BitManipGPRIntrinsics ;
102
+ def int_riscv_brev8 : RISCVBitManipGPRIntrinsics ;
103
+ def int_riscv_zip : RISCVBitManipGPRIntrinsics ;
104
+ def int_riscv_unzip : RISCVBitManipGPRIntrinsics ;
105
105
106
106
// Zbkx
107
- def int_riscv_xperm4 : BitManipGPRGPRIntrinsics ;
108
- def int_riscv_xperm8 : BitManipGPRGPRIntrinsics ;
107
+ def int_riscv_xperm4 : RISCVBitManipGPRGPRIntrinsics ;
108
+ def int_riscv_xperm8 : RISCVBitManipGPRGPRIntrinsics ;
109
109
} // TargetPrefix = "riscv"
110
110
111
111
//===----------------------------------------------------------------------===//
0 commit comments