1 // REQUIRES: riscv-registered-target
2 // RUN: %clang_cc1 -triple riscv32 -target-feature +v -target-feature +zihintntl -emit-llvm %s -o - \
5 #include <riscv_ntlh.h>
6 #include <riscv_vector.h>
15 unsigned long long ull
;
19 typedef int v4si
__attribute__((vector_size(16)));
20 typedef signed short v8ss
__attribute__((vector_size(16)));
21 typedef signed char v16sc
__attribute__((vector_size(16)));
25 vint32m1_t
*scvi1
, *scvi2
;
26 vint16m1_t
*scvs1
, *scvs2
;
27 vint8m1_t
*scvc1
, *scvc2
;
30 void ntl_all_sizes() { // CHECK-LABEL: ntl_all_sizes
31 uc
= __riscv_ntl_load(&sc
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: load i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !5
32 sc
= __riscv_ntl_load(&uc
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: load i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !5
33 us
= __riscv_ntl_load(&ss
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: load i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !5
34 ss
= __riscv_ntl_load(&us
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: load i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !5
35 ui
= __riscv_ntl_load(&si
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: load i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !5
36 si
= __riscv_ntl_load(&ui
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: load i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !5
37 ull
= __riscv_ntl_load(&sll
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: load i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !5
38 sll
= __riscv_ntl_load(&ull
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: load i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !5
39 h1
= __riscv_ntl_load(&h2
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: load half{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !5
40 f1
= __riscv_ntl_load(&f2
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: load float{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !5
41 d1
= __riscv_ntl_load(&d2
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: load double{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !5
42 v4si1
= __riscv_ntl_load(&v4si2
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: load <4 x i32>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !5
43 v8ss1
= __riscv_ntl_load(&v8ss2
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: load <8 x i16>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !5
44 v16sc1
= __riscv_ntl_load(&v16sc2
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: load <16 x i8>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !5
45 *scvi1
= __riscv_ntl_load(scvi2
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: load <vscale x 2 x i32>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !5
46 *scvs1
= __riscv_ntl_load(scvs2
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: load <vscale x 4 x i16>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !5
47 *scvc1
= __riscv_ntl_load(scvc2
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: load <vscale x 8 x i8>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !5
49 uc
= __riscv_ntl_load(&sc
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: load i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !6
50 sc
= __riscv_ntl_load(&uc
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: load i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !6
51 us
= __riscv_ntl_load(&ss
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: load i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !6
52 ss
= __riscv_ntl_load(&us
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: load i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !6
53 ui
= __riscv_ntl_load(&si
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: load i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !6
54 si
= __riscv_ntl_load(&ui
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: load i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !6
55 ull
= __riscv_ntl_load(&sll
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: load i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !6
56 sll
= __riscv_ntl_load(&ull
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: load i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !6
57 h1
= __riscv_ntl_load(&h2
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: load half{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !6
58 f1
= __riscv_ntl_load(&f2
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: load float{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !6
59 d1
= __riscv_ntl_load(&d2
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: load double{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !6
60 v4si1
= __riscv_ntl_load(&v4si2
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: load <4 x i32>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !6
61 v8ss1
= __riscv_ntl_load(&v8ss2
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: load <8 x i16>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !6
62 v16sc1
= __riscv_ntl_load(&v16sc2
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: load <16 x i8>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !6
63 *scvi1
= __riscv_ntl_load(scvi2
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: load <vscale x 2 x i32>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !6
64 *scvs1
= __riscv_ntl_load(scvs2
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: load <vscale x 4 x i16>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !6
65 *scvc1
= __riscv_ntl_load(scvc2
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: load <vscale x 8 x i8>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !6
67 uc
= __riscv_ntl_load(&sc
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: load i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !7
68 sc
= __riscv_ntl_load(&uc
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: load i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !7
69 us
= __riscv_ntl_load(&ss
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: load i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !7
70 ss
= __riscv_ntl_load(&us
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: load i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !7
71 ui
= __riscv_ntl_load(&si
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: load i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !7
72 si
= __riscv_ntl_load(&ui
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: load i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !7
73 ull
= __riscv_ntl_load(&sll
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: load i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !7
74 sll
= __riscv_ntl_load(&ull
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: load i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !7
75 h1
= __riscv_ntl_load(&h2
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: load half{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !7
76 f1
= __riscv_ntl_load(&f2
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: load float{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !7
77 d1
= __riscv_ntl_load(&d2
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: load double{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !7
78 v4si1
= __riscv_ntl_load(&v4si2
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: load <4 x i32>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !7
79 v8ss1
= __riscv_ntl_load(&v8ss2
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: load <8 x i16>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !7
80 v16sc1
= __riscv_ntl_load(&v16sc2
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: load <16 x i8>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !7
81 *scvi1
= __riscv_ntl_load(scvi2
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: load <vscale x 2 x i32>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !7
82 *scvs1
= __riscv_ntl_load(scvs2
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: load <vscale x 4 x i16>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !7
83 *scvc1
= __riscv_ntl_load(scvc2
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: load <vscale x 8 x i8>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !7
85 uc
= __riscv_ntl_load(&sc
, __RISCV_NTLH_ALL
); // CHECK: load i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !8
86 sc
= __riscv_ntl_load(&uc
, __RISCV_NTLH_ALL
); // CHECK: load i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !8
87 us
= __riscv_ntl_load(&ss
, __RISCV_NTLH_ALL
); // CHECK: load i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !8
88 ss
= __riscv_ntl_load(&us
, __RISCV_NTLH_ALL
); // CHECK: load i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !8
89 ui
= __riscv_ntl_load(&si
, __RISCV_NTLH_ALL
); // CHECK: load i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !8
90 si
= __riscv_ntl_load(&ui
, __RISCV_NTLH_ALL
); // CHECK: load i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !8
91 ull
= __riscv_ntl_load(&sll
, __RISCV_NTLH_ALL
); // CHECK: load i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
92 sll
= __riscv_ntl_load(&ull
, __RISCV_NTLH_ALL
); // CHECK: load i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
93 h1
= __riscv_ntl_load(&h2
, __RISCV_NTLH_ALL
); // CHECK: load half{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !8
94 f1
= __riscv_ntl_load(&f2
, __RISCV_NTLH_ALL
); // CHECK: load float{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !8
95 d1
= __riscv_ntl_load(&d2
, __RISCV_NTLH_ALL
); // CHECK: load double{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
96 v4si1
= __riscv_ntl_load(&v4si2
, __RISCV_NTLH_ALL
); // CHECK: load <4 x i32>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !8
97 v8ss1
= __riscv_ntl_load(&v8ss2
, __RISCV_NTLH_ALL
); // CHECK: load <8 x i16>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !8
98 v16sc1
= __riscv_ntl_load(&v16sc2
, __RISCV_NTLH_ALL
); // CHECK: load <16 x i8>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !8
99 *scvi1
= __riscv_ntl_load(scvi2
, __RISCV_NTLH_ALL
); // CHECK: load <vscale x 2 x i32>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
100 *scvs1
= __riscv_ntl_load(scvs2
, __RISCV_NTLH_ALL
); // CHECK: load <vscale x 4 x i16>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
101 *scvc1
= __riscv_ntl_load(scvc2
, __RISCV_NTLH_ALL
); // CHECK: load <vscale x 8 x i8>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
103 uc
= __riscv_ntl_load(&sc
); // CHECK: load i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !8
104 sc
= __riscv_ntl_load(&uc
); // CHECK: load i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !8
105 us
= __riscv_ntl_load(&ss
); // CHECK: load i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !8
106 ss
= __riscv_ntl_load(&us
); // CHECK: load i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !8
107 ui
= __riscv_ntl_load(&si
); // CHECK: load i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !8
108 si
= __riscv_ntl_load(&ui
); // CHECK: load i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !8
109 ull
= __riscv_ntl_load(&sll
); // CHECK: load i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
110 sll
= __riscv_ntl_load(&ull
); // CHECK: load i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
111 h1
= __riscv_ntl_load(&h2
); // CHECK: load half{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !8
112 f1
= __riscv_ntl_load(&f2
); // CHECK: load float{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !8
113 d1
= __riscv_ntl_load(&d2
); // CHECK: load double{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
114 v4si1
= __riscv_ntl_load(&v4si2
); // CHECK: load <4 x i32>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !8
115 v8ss1
= __riscv_ntl_load(&v8ss2
); // CHECK: load <8 x i16>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !8
116 v16sc1
= __riscv_ntl_load(&v16sc2
); // CHECK: load <16 x i8>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !8
117 *scvi1
= __riscv_ntl_load(scvi2
); // CHECK: load <vscale x 2 x i32>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
118 *scvs1
= __riscv_ntl_load(scvs2
); // CHECK: load <vscale x 4 x i16>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
119 *scvc1
= __riscv_ntl_load(scvc2
); // CHECK: load <vscale x 8 x i8>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
121 __riscv_ntl_store(&uc
, 1, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: store i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !5
122 __riscv_ntl_store(&sc
, 1, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: store i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !5
123 __riscv_ntl_store(&us
, 1, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: store i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !5
124 __riscv_ntl_store(&ss
, 1, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: store i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !5
125 __riscv_ntl_store(&ui
, 1, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: store i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !5
126 __riscv_ntl_store(&si
, 1, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: store i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !5
127 __riscv_ntl_store(&ull
, 1, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: store i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !5
128 __riscv_ntl_store(&sll
, 1, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: store i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !5
129 __riscv_ntl_store(&h1
, 1.0, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: store half{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !5
130 __riscv_ntl_store(&f1
, 1.0, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: store float{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !5
131 __riscv_ntl_store(&d1
, 1.0, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: store double{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !5
132 __riscv_ntl_store(&v4si1
, v4si2
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: store <4 x i32>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !5
133 __riscv_ntl_store(&v8ss1
, v8ss2
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: store <8 x i16>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !5
134 __riscv_ntl_store(&v16sc1
, v16sc2
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: store <16 x i8>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !5
135 __riscv_ntl_store(scvi2
, *scvi1
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: store <vscale x 2 x i32>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !5
136 __riscv_ntl_store(scvs2
, *scvs1
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: store <vscale x 4 x i16>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !5
137 __riscv_ntl_store(scvc2
, *scvc1
, __RISCV_NTLH_INNERMOST_PRIVATE
); // CHECK: store <vscale x 8 x i8>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !5
139 __riscv_ntl_store(&uc
, 1, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: store i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !6
140 __riscv_ntl_store(&sc
, 1, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: store i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !6
141 __riscv_ntl_store(&us
, 1, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: store i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !6
142 __riscv_ntl_store(&ss
, 1, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: store i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !6
143 __riscv_ntl_store(&ui
, 1, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: store i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !6
144 __riscv_ntl_store(&si
, 1, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: store i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !6
145 __riscv_ntl_store(&ull
, 1, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: store i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !6
146 __riscv_ntl_store(&sll
, 1, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: store i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !6
147 __riscv_ntl_store(&h1
, 1.0, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: store half{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !6
148 __riscv_ntl_store(&f1
, 1.0, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: store float{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !6
149 __riscv_ntl_store(&d1
, 1.0, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: store double{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !6
150 __riscv_ntl_store(&v4si1
, v4si2
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: store <4 x i32>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !6
151 __riscv_ntl_store(&v8ss1
, v8ss2
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: store <8 x i16>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !6
152 __riscv_ntl_store(&v16sc1
, v16sc2
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: store <16 x i8>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !6
153 __riscv_ntl_store(scvi2
, *scvi1
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: store <vscale x 2 x i32>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !6
154 __riscv_ntl_store(scvs2
, *scvs1
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: store <vscale x 4 x i16>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !6
155 __riscv_ntl_store(scvc2
, *scvc1
, __RISCV_NTLH_ALL_PRIVATE
); // CHECK: store <vscale x 8 x i8>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !6
157 __riscv_ntl_store(&uc
, 1, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: store i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !7
158 __riscv_ntl_store(&sc
, 1, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: store i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !7
159 __riscv_ntl_store(&us
, 1, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: store i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !7
160 __riscv_ntl_store(&ss
, 1, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: store i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !7
161 __riscv_ntl_store(&ui
, 1, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: store i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !7
162 __riscv_ntl_store(&si
, 1, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: store i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !7
163 __riscv_ntl_store(&ull
, 1, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: store i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !7
164 __riscv_ntl_store(&sll
, 1, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: store i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !7
165 __riscv_ntl_store(&h1
, 1.0, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: store half{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !7
166 __riscv_ntl_store(&f1
, 1.0, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: store float{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !7
167 __riscv_ntl_store(&d1
, 1.0, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: store double{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !7
168 __riscv_ntl_store(&v4si1
, v4si2
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: store <4 x i32>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !7
169 __riscv_ntl_store(&v8ss1
, v8ss2
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: store <8 x i16>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !7
170 __riscv_ntl_store(&v16sc1
, v16sc2
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: store <16 x i8>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !7
171 __riscv_ntl_store(scvi2
, *scvi1
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: store <vscale x 2 x i32>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !7
172 __riscv_ntl_store(scvs2
, *scvs1
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: store <vscale x 4 x i16>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !7
173 __riscv_ntl_store(scvc2
, *scvc1
, __RISCV_NTLH_INNERMOST_SHARED
); // CHECK: store <vscale x 8 x i8>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !7
175 __riscv_ntl_store(&uc
, 1, __RISCV_NTLH_ALL
); // CHECK: store i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !8
176 __riscv_ntl_store(&sc
, 1, __RISCV_NTLH_ALL
); // CHECK: store i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !8
177 __riscv_ntl_store(&us
, 1, __RISCV_NTLH_ALL
); // CHECK: store i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !8
178 __riscv_ntl_store(&ss
, 1, __RISCV_NTLH_ALL
); // CHECK: store i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !8
179 __riscv_ntl_store(&ui
, 1, __RISCV_NTLH_ALL
); // CHECK: store i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !8
180 __riscv_ntl_store(&si
, 1, __RISCV_NTLH_ALL
); // CHECK: store i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !8
181 __riscv_ntl_store(&ull
, 1, __RISCV_NTLH_ALL
); // CHECK: store i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
182 __riscv_ntl_store(&sll
, 1, __RISCV_NTLH_ALL
); // CHECK: store i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
183 __riscv_ntl_store(&h1
, 1.0, __RISCV_NTLH_ALL
); // CHECK: store half{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !8
184 __riscv_ntl_store(&f1
, 1.0, __RISCV_NTLH_ALL
); // CHECK: store float{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !8
185 __riscv_ntl_store(&d1
, 1.0, __RISCV_NTLH_ALL
); // CHECK: store double{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
186 __riscv_ntl_store(&v4si1
, v4si2
, __RISCV_NTLH_ALL
); // CHECK: store <4 x i32>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !8
187 __riscv_ntl_store(&v8ss1
, v8ss2
, __RISCV_NTLH_ALL
); // CHECK: store <8 x i16>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !8
188 __riscv_ntl_store(&v16sc1
, v16sc2
, __RISCV_NTLH_ALL
); // CHECK: store <16 x i8>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !8
189 __riscv_ntl_store(scvi2
, *scvi1
, __RISCV_NTLH_ALL
); // CHECK: store <vscale x 2 x i32>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
190 __riscv_ntl_store(scvs2
, *scvs1
, __RISCV_NTLH_ALL
); // CHECK: store <vscale x 4 x i16>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
191 __riscv_ntl_store(scvc2
, *scvc1
, __RISCV_NTLH_ALL
); // CHECK: store <vscale x 8 x i8>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
193 __riscv_ntl_store(&uc
, 1); // CHECK: store i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !8
194 __riscv_ntl_store(&sc
, 1); // CHECK: store i8{{.*}}align 1, !nontemporal !4, !riscv-nontemporal-domain !8
195 __riscv_ntl_store(&us
, 1); // CHECK: store i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !8
196 __riscv_ntl_store(&ss
, 1); // CHECK: store i16{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !8
197 __riscv_ntl_store(&ui
, 1); // CHECK: store i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !8
198 __riscv_ntl_store(&si
, 1); // CHECK: store i32{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !8
199 __riscv_ntl_store(&ull
, 1); // CHECK: store i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
200 __riscv_ntl_store(&sll
, 1); // CHECK: store i64{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
201 __riscv_ntl_store(&h1
, 1.0); // CHECK: store half{{.*}}align 2, !nontemporal !4, !riscv-nontemporal-domain !8
202 __riscv_ntl_store(&f1
, 1.0); // CHECK: store float{{.*}}align 4, !nontemporal !4, !riscv-nontemporal-domain !8
203 __riscv_ntl_store(&d1
, 1.0); // CHECK: store double{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
204 __riscv_ntl_store(&v4si1
, v4si2
); // CHECK: store <4 x i32>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !8
205 __riscv_ntl_store(&v8ss1
, v8ss2
); // CHECK: store <8 x i16>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !8
206 __riscv_ntl_store(&v16sc1
, v16sc2
); // CHECK: store <16 x i8>{{.*}}align 16, !nontemporal !4, !riscv-nontemporal-domain !8
207 __riscv_ntl_store(scvi2
, *scvi1
); // CHECK: store <vscale x 2 x i32>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
208 __riscv_ntl_store(scvs2
, *scvs1
); // CHECK: store <vscale x 4 x i16>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
209 __riscv_ntl_store(scvc2
, *scvc1
); // CHECK: store <vscale x 8 x i8>{{.*}}align 8, !nontemporal !4, !riscv-nontemporal-domain !8
213 // CHECK: !4 = !{i32 1}
214 // CHECK: !5 = !{i32 2}
215 // CHECK: !6 = !{i32 3}
216 // CHECK: !7 = !{i32 4}
217 // CHECK: !8 = !{i32 5}