10
10
// RUN: -emit-llvm -o - %s \
11
11
// RUN: | opt -S -passes=instcombine,mem2reg,simplifycfg -o %t.ll
12
12
// RUN: FileCheck --check-prefix=LLVM --input-file=%t.ll %s
13
- // XFAIL: *
14
13
15
14
// REQUIRES: aarch64-registered-target || arm-registered-target
16
15
#include <arm_neon.h>
@@ -44,11 +43,7 @@ float32x2_t test_vrnda_f32(float32x2_t a) {
44
43
}
45
44
46
45
// CIR: cir.func internal private dso_local @vrnda_f32(%arg0: !cir.vector<!cir.float x 2>
47
- // CIR: cir.store %arg0, [[ARG_SAVE:%.*]] : !cir.vector<!cir.float x 2>, !cir.ptr<!cir.vector<!cir.float x 2>>
48
- // CIR: [[INTRIN_ARG:%.*]] = cir.load{{.*}} [[ARG_SAVE]] : !cir.ptr<!cir.vector<!cir.float x 2>>, !cir.vector<!cir.float x 2>
49
- // CIR: [[INTRIN_ARG_CAST:%.*]] = cir.cast(bitcast, [[INTRIN_ARG]] : !cir.vector<!cir.float x 2>), !cir.vector<!s8i x 8>
50
- // CIR: [[INTRIN_ARG_BACK:%.*]] = cir.cast(bitcast, [[INTRIN_ARG_CAST]] : !cir.vector<!s8i x 8>), !cir.vector<!cir.float x 2>
51
- // CIR: {{%.*}} = cir.round [[INTRIN_ARG_BACK]] : !cir.vector<!cir.float x 2>
46
+ // CIR: {{%.*}} = cir.round {{.*}} : !cir.vector<!cir.float x 2>
52
47
// CIR: cir.return {{%.*}} : !cir.vector<!cir.float x 2>
53
48
54
49
// CIR-LABEL: test_vrnda_f32
@@ -69,10 +64,7 @@ float32x4_t test_vrndaq_f32(float32x4_t a) {
69
64
70
65
// CIR: cir.func internal private dso_local @vrndaq_f32(%arg0: !cir.vector<!cir.float x 4>
71
66
// CIR: cir.store %arg0, [[ARG_SAVE:%.*]] : !cir.vector<!cir.float x 4>, !cir.ptr<!cir.vector<!cir.float x 4>>
72
- // CIR: [[INTRIN_ARG:%.*]] = cir.load{{.*}} [[ARG_SAVE]] : !cir.ptr<!cir.vector<!cir.float x 4>>, !cir.vector<!cir.float x 4>
73
- // CIR: [[INTRIN_ARG_CAST:%.*]] = cir.cast(bitcast, [[INTRIN_ARG]] : !cir.vector<!cir.float x 4>), !cir.vector<!s8i x 16>
74
- // CIR: [[INTRIN_ARG_BACK:%.*]] = cir.cast(bitcast, [[INTRIN_ARG_CAST]] : !cir.vector<!s8i x 16>), !cir.vector<!cir.float x 4>
75
- // CIR: {{%.*}} = cir.round [[INTRIN_ARG_BACK]] : !cir.vector<!cir.float x 4>
67
+ // CIR: {{%.*}} = cir.round {{.*}} : !cir.vector<!cir.float x 4>
76
68
// CIR: cir.return {{%.*}} : !cir.vector<!cir.float x 4>
77
69
78
70
// LLVM: {{.*}}test_vrndaq_f32(<4 x float>{{.*}}[[ARG:%.*]])
0 commit comments