|
1 | 1 | //@ add-core-stubs |
2 | 2 | //@ compile-flags: -C opt-level=0 -C no-prepopulate-passes |
3 | | -//@ ignore-riscv64 |
4 | 3 |
|
5 | 4 | #![crate_type = "lib"] |
6 | | -#![feature(no_core, repr_simd, arm_target_feature, mips_target_feature, s390x_target_feature)] |
| 5 | +#![feature(no_core, repr_simd, arm_target_feature, mips_target_feature, s390x_target_feature, riscv_target_feature)] |
7 | 6 | #![no_core] |
8 | 7 | extern crate minicore; |
9 | 8 |
|
@@ -80,7 +79,7 @@ pub fn bool_to_fake_bool_signed(b: bool) -> FakeBoolSigned { |
80 | 79 | unsafe { mem::transmute(b) } |
81 | 80 | } |
82 | 81 |
|
83 | | -// CHECK-LABEL: define{{.*}}i1 @fake_bool_signed_to_bool(i8 %b) |
| 82 | +// CHECK-LABEL: define{{.*}}i1 @fake_bool_signed_to_bool(i8 {{.*}}%b) |
84 | 83 | // CHECK: %_0 = trunc nuw i8 %b to i1 |
85 | 84 | // CHECK-NEXT: ret i1 %_0 |
86 | 85 | #[no_mangle] |
@@ -111,34 +110,36 @@ pub fn fake_bool_unsigned_to_bool(b: FakeBoolUnsigned) -> bool { |
111 | 110 | #[repr(simd)] |
112 | 111 | struct S([i64; 1]); |
113 | 112 |
|
114 | | -// CHECK-LABEL: define{{.*}}i64 @single_element_simd_to_scalar(<1 x i64> %b) |
| 113 | +// CHECK-LABEL: define{{.*}}i64 @single_element_simd_to_scalar({{.*}}i64 %{{.*}}) |
115 | 114 | // CHECK-NEXT: start: |
116 | 115 | // CHECK-NEXT: %[[RET:.+]] = alloca [8 x i8] |
117 | | -// CHECK-NEXT: store <1 x i64> %b, ptr %[[RET]] |
118 | | -// CHECK-NEXT: %[[TEMP:.+]] = load i64, ptr %[[RET]] |
119 | | -// CHECK-NEXT: ret i64 %[[TEMP]] |
| 116 | +// CHECK: store <1 x i64> %[[TEMP:.+]], ptr %[[RET]] |
| 117 | +// CHECK: %[[TEMP:.+]] = load i64, ptr %[[RET]] |
| 118 | +// CHECK: ret i64 %[[TEMP]] |
120 | 119 | #[no_mangle] |
121 | 120 | #[cfg_attr(target_family = "wasm", target_feature(enable = "simd128"))] |
122 | 121 | #[cfg_attr(target_arch = "arm", target_feature(enable = "neon"))] |
123 | 122 | #[cfg_attr(target_arch = "x86", target_feature(enable = "sse"))] |
124 | 123 | #[cfg_attr(target_arch = "mips", target_feature(enable = "msa"))] |
125 | 124 | #[cfg_attr(target_arch = "s390x", target_feature(enable = "vector"))] |
| 125 | +#[cfg_attr(target_arch = "riscv64", target_feature(enable = "v"))] |
126 | 126 | pub extern "C" fn single_element_simd_to_scalar(b: S) -> i64 { |
127 | 127 | unsafe { mem::transmute(b) } |
128 | 128 | } |
129 | 129 |
|
130 | | -// CHECK-LABEL: define{{.*}}<1 x i64> @scalar_to_single_element_simd(i64 %b) |
| 130 | +// CHECK-LABEL: define{{.*}}i64{{.*}} @scalar_to_single_element_simd(i64 %b) |
131 | 131 | // CHECK-NEXT: start: |
132 | 132 | // CHECK-NEXT: %[[RET:.+]] = alloca [8 x i8] |
133 | 133 | // CHECK-NEXT: store i64 %b, ptr %[[RET]] |
134 | | -// CHECK-NEXT: %[[TEMP:.+]] = load <1 x i64>, ptr %[[RET]] |
135 | | -// CHECK-NEXT: ret <1 x i64> %[[TEMP]] |
| 134 | +// CHECK-NEXT: %[[TEMP:.+]] = load{{.*}}i64{{.*}}, ptr %[[RET]] |
| 135 | +// CHECK-NEXT: ret {{.*}}i64{{.*}}%[[TEMP]] |
136 | 136 | #[no_mangle] |
137 | 137 | #[cfg_attr(target_family = "wasm", target_feature(enable = "simd128"))] |
138 | 138 | #[cfg_attr(target_arch = "arm", target_feature(enable = "neon"))] |
139 | 139 | #[cfg_attr(target_arch = "x86", target_feature(enable = "sse"))] |
140 | 140 | #[cfg_attr(target_arch = "mips", target_feature(enable = "msa"))] |
141 | 141 | #[cfg_attr(target_arch = "s390x", target_feature(enable = "vector"))] |
| 142 | +#[cfg_attr(target_arch = "riscv64", target_feature(enable = "v"))] |
142 | 143 | pub extern "C" fn scalar_to_single_element_simd(b: i64) -> S { |
143 | 144 | unsafe { mem::transmute(b) } |
144 | 145 | } |
0 commit comments