brintos

brintos / llvm-project-archived public Read only

0
0
Text · 5.3 KiB · 85187f1 Raw
166 lines · plain
1; RUN: llc < %s -mtriple=aarch64 -mattr=+v8.5a  | FileCheck %s2 3declare <2 x float> @llvm.aarch64.neon.frint32x.v2f32(<2 x float>)4declare <4 x float> @llvm.aarch64.neon.frint32x.v4f32(<4 x float>)5declare <2 x float> @llvm.aarch64.neon.frint32z.v2f32(<2 x float>)6declare <4 x float> @llvm.aarch64.neon.frint32z.v4f32(<4 x float>)7 8define dso_local <2 x float> @t_vrnd32x_f32(<2 x float> %a) {9; CHECK-LABEL: t_vrnd32x_f32:10; CHECK:         frint32x v0.2s, v0.2s11; CHECK-NEXT:    ret12entry:13  %val = tail call <2 x float> @llvm.aarch64.neon.frint32x.v2f32(<2 x float> %a)14  ret <2 x float> %val15}16 17define dso_local <4 x float> @t_vrnd32xq_f32(<4 x float> %a) {18; CHECK-LABEL: t_vrnd32xq_f32:19; CHECK:         frint32x v0.4s, v0.4s20; CHECK-NEXT:    ret21entry:22  %val = tail call <4 x float> @llvm.aarch64.neon.frint32x.v4f32(<4 x float> %a)23  ret <4 x float> %val24}25 26define dso_local <2 x float> @t_vrnd32z_f32(<2 x float> %a) {27; CHECK-LABEL: t_vrnd32z_f32:28; CHECK:         frint32z v0.2s, v0.2s29; CHECK-NEXT:    ret30entry:31  %val = tail call <2 x float> @llvm.aarch64.neon.frint32z.v2f32(<2 x float> %a)32  ret <2 x float> %val33}34 35define dso_local <4 x float> @t_vrnd32zq_f32(<4 x float> %a) {36; CHECK-LABEL: t_vrnd32zq_f32:37; CHECK:         frint32z v0.4s, v0.4s38; CHECK-NEXT:    ret39entry:40  %val = tail call <4 x float> @llvm.aarch64.neon.frint32z.v4f32(<4 x float> %a)41  ret <4 x float> %val42}43 44declare <2 x float> @llvm.aarch64.neon.frint64x.v2f32(<2 x float>)45declare <4 x float> @llvm.aarch64.neon.frint64x.v4f32(<4 x float>)46declare <2 x float> @llvm.aarch64.neon.frint64z.v2f32(<2 x float>)47declare <4 x float> @llvm.aarch64.neon.frint64z.v4f32(<4 x float>)48 49define dso_local <2 x float> @t_vrnd64x_f32(<2 x float> %a) {50; CHECK-LABEL: t_vrnd64x_f32:51; CHECK:         frint64x v0.2s, v0.2s52; CHECK-NEXT:    ret53entry:54  %val = tail call <2 x float> @llvm.aarch64.neon.frint64x.v2f32(<2 x float> %a)55  ret <2 x float> %val56}57 58define dso_local <4 x float> @t_vrnd64xq_f32(<4 x float> %a) {59; CHECK-LABEL: t_vrnd64xq_f32:60; CHECK:         frint64x v0.4s, v0.4s61; CHECK-NEXT:    ret62entry:63  %val = tail call <4 x float> @llvm.aarch64.neon.frint64x.v4f32(<4 x float> %a)64  ret <4 x float> %val65}66 67define dso_local <2 x float> @t_vrnd64z_f32(<2 x float> %a) {68; CHECK-LABEL: t_vrnd64z_f32:69; CHECK:         frint64z v0.2s, v0.2s70; CHECK-NEXT:    ret71entry:72  %val = tail call <2 x float> @llvm.aarch64.neon.frint64z.v2f32(<2 x float> %a)73  ret <2 x float> %val74}75 76define dso_local <4 x float> @t_vrnd64zq_f32(<4 x float> %a) {77; CHECK-LABEL: t_vrnd64zq_f32:78; CHECK:         frint64z v0.4s, v0.4s79; CHECK-NEXT:    ret80entry:81  %val = tail call <4 x float> @llvm.aarch64.neon.frint64z.v4f32(<4 x float> %a)82  ret <4 x float> %val83}84 85declare <1 x double> @llvm.aarch64.neon.frint32x.v1f64(<1 x double>)86declare <2 x double> @llvm.aarch64.neon.frint32x.v2f64(<2 x double>)87declare <1 x double> @llvm.aarch64.neon.frint32z.v1f64(<1 x double>)88declare <2 x double> @llvm.aarch64.neon.frint32z.v2f64(<2 x double>)89 90define dso_local <1 x double> @t_vrnd32x_f64(<1 x double> %a) {91; CHECK-LABEL: t_vrnd32x_f64:92; CHECK:         frint32x d0, d093; CHECK-NEXT:    ret94entry:95  %val = tail call <1 x double> @llvm.aarch64.neon.frint32x.v1f64(<1 x double> %a)96  ret <1 x double> %val97}98 99define dso_local <2 x double> @t_vrnd32xq_f64(<2 x double> %a) {100; CHECK-LABEL: t_vrnd32xq_f64:101; CHECK:         frint32x v0.2d, v0.2d102; CHECK-NEXT:    ret103entry:104  %val = tail call <2 x double> @llvm.aarch64.neon.frint32x.v2f64(<2 x double> %a)105  ret <2 x double> %val106}107 108define dso_local <1 x double> @t_vrnd32z_f64(<1 x double> %a) {109; CHECK-LABEL: t_vrnd32z_f64:110; CHECK:         frint32z d0, d0111; CHECK-NEXT:    ret112entry:113  %val = tail call <1 x double> @llvm.aarch64.neon.frint32z.v1f64(<1 x double> %a)114  ret <1 x double> %val115}116 117define dso_local <2 x double> @t_vrnd32zq_f64(<2 x double> %a) {118; CHECK-LABEL: t_vrnd32zq_f64:119; CHECK:         frint32z v0.2d, v0.2d120; CHECK-NEXT:    ret121entry:122  %val = tail call <2 x double> @llvm.aarch64.neon.frint32z.v2f64(<2 x double> %a)123  ret <2 x double> %val124}125 126declare <1 x double> @llvm.aarch64.neon.frint64x.v1f64(<1 x double>)127declare <2 x double> @llvm.aarch64.neon.frint64x.v2f64(<2 x double>)128declare <1 x double> @llvm.aarch64.neon.frint64z.v1f64(<1 x double>)129declare <2 x double> @llvm.aarch64.neon.frint64z.v2f64(<2 x double>)130 131define dso_local <1 x double> @t_vrnd64x_f64(<1 x double> %a) {132; CHECK-LABEL: t_vrnd64x_f64:133; CHECK:         frint64x d0, d0134; CHECK-NEXT:    ret135entry:136  %val = tail call <1 x double> @llvm.aarch64.neon.frint64x.v1f64(<1 x double> %a)137  ret <1 x double> %val138}139 140define dso_local <2 x double> @t_vrnd64xq_f64(<2 x double> %a) {141; CHECK-LABEL: t_vrnd64xq_f64:142; CHECK:         frint64x v0.2d, v0.2d143; CHECK-NEXT:    ret144entry:145  %val = tail call <2 x double> @llvm.aarch64.neon.frint64x.v2f64(<2 x double> %a)146  ret <2 x double> %val147}148 149define dso_local <1 x double> @t_vrnd64z_f64(<1 x double> %a) {150; CHECK-LABEL: t_vrnd64z_f64:151; CHECK:         frint64z d0, d0152; CHECK-NEXT:    ret153entry:154  %val = tail call <1 x double> @llvm.aarch64.neon.frint64z.v1f64(<1 x double> %a)155  ret <1 x double> %val156}157 158define dso_local <2 x double> @t_vrnd64zq_f64(<2 x double> %a) {159; CHECK-LABEL: t_vrnd64zq_f64:160; CHECK:         frint64z v0.2d, v0.2d161; CHECK-NEXT:    ret162entry:163  %val = tail call <2 x double> @llvm.aarch64.neon.frint64z.v2f64(<2 x double> %a)164  ret <2 x double> %val165}166