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