11// RUN: %clang_cc1 -triple thumbv8-linux-gnueabihf -target-cpu cortex-a57 \
22// RUN: -ffreestanding -disable-O0-optnone -emit-llvm %s -o - | \
3- // RUN: opt -S -passes=mem2reg | FileCheck -check-prefixes=COMMON,COMMONIR,UNCONSTRAINED %s
3+ // RUN: opt -S -passes=mem2reg,sroa | FileCheck -check-prefixes=COMMON,COMMONIR,UNCONSTRAINED %s
44// RUN: %clang_cc1 -triple arm64-linux-gnueabihf -target-feature +neon \
55// RUN: -ffreestanding -disable-O0-optnone -emit-llvm %s -o - | \
6- // RUN: opt -S -passes=mem2reg | FileCheck -check-prefixes=COMMON,COMMONIR,UNCONSTRAINED %s
6+ // RUN: opt -S -passes=mem2reg,sroa | FileCheck -check-prefixes=COMMON,COMMONIR,UNCONSTRAINED %s
77
88// RUN: %clang_cc1 -triple thumbv8-linux-gnueabihf -target-cpu cortex-a57 \
99// RUN: -ffp-exception-behavior=strict \
1010// RUN: -fexperimental-strict-floating-point \
1111// RUN: -ffreestanding -disable-O0-optnone -emit-llvm %s -o - | \
12- // RUN: opt -S -passes=mem2reg | FileCheck -check-prefixes=COMMON,COMMONIR,CONSTRAINED %s
12+ // RUN: opt -S -passes=mem2reg,sroa | FileCheck -check-prefixes=COMMON,COMMONIR,CONSTRAINED %s
1313// RUN: %clang_cc1 -triple arm64-linux-gnueabihf -target-feature +neon \
1414// RUN: -ffp-exception-behavior=strict \
1515// RUN: -ffreestanding -disable-O0-optnone -emit-llvm %s -o - | \
16- // RUN: opt -S -passes=mem2reg | FileCheck -check-prefixes=COMMON,COMMONIR,CONSTRAINED %s
16+ // RUN: opt -S -passes=mem2reg,sroa | FileCheck -check-prefixes=COMMON,COMMONIR,CONSTRAINED %s
1717
1818// RUN: %clang_cc1 -triple thumbv8-linux-gnueabihf -target-cpu cortex-a57 \
1919// RUN: -ffreestanding -disable-O0-optnone -emit-llvm %s -o - | \
20- // RUN: opt -S -passes=mem2reg | llc -o=- - | FileCheck -check-prefixes=COMMON,CHECK-ASM32 %s
20+ // RUN: opt -S -passes=mem2reg,sroa | llc -o=- - | FileCheck -check-prefixes=COMMON,CHECK-ASM32 %s
2121// RUN: %clang_cc1 -triple arm64-linux-gnueabihf -target-feature +neon \
2222// RUN: -ffreestanding -disable-O0-optnone -emit-llvm %s -o - | \
23- // RUN: opt -S -passes=mem2reg | llc -o=- - | FileCheck -check-prefixes=COMMON,CHECK-ASM64 %s
23+ // RUN: opt -S -passes=mem2reg,sroa | llc -o=- - | FileCheck -check-prefixes=COMMON,CHECK-ASM64 %s
2424
2525// RUN: %clang_cc1 -triple thumbv8-linux-gnueabihf -target-cpu cortex-a57 \
2626// RUN: -ffp-exception-behavior=strict \
2727// RUN: -fexperimental-strict-floating-point \
2828// RUN: -ffreestanding -disable-O0-optnone -emit-llvm %s -o - | \
29- // RUN: opt -S -passes=mem2reg | llc -o=- - | FileCheck -check-prefixes=COMMON,CHECK-ASM32 %s
29+ // RUN: opt -S -passes=mem2reg,sroa | llc -o=- - | FileCheck -check-prefixes=COMMON,CHECK-ASM32 %s
3030// RUN: %clang_cc1 -triple arm64-linux-gnueabihf -target-feature +neon \
3131// RUN: -ffp-exception-behavior=strict \
3232// RUN: -ffreestanding -disable-O0-optnone -emit-llvm %s -o - | \
33- // RUN: opt -S -passes=mem2reg | llc -o=- - | FileCheck -check-prefixes=COMMON,CHECK-ASM64 %s
33+ // RUN: opt -S -passes=mem2reg,sroa | llc -o=- - | FileCheck -check-prefixes=COMMON,CHECK-ASM64 %s
3434
3535// REQUIRES: arm-registered-target,aarch64-registered-target
3636
3737#include <arm_neon.h>
3838
3939// COMMON-LABEL: test_vrndi_f32
40- // COMMONIR: [[TMP0:%.*]] = bitcast <2 x float> %a to <8 x i8>
41- // UNCONSTRAINED: [[VRNDI1_I:%.*]] = call <2 x float> @llvm.nearbyint.v2f32(<2 x float> %a)
42- // CONSTRAINED: [[VRNDI1_I:%.*]] = call <2 x float> @llvm.experimental.constrained.nearbyint.v2f32(<2 x float> %a, metadata !"round.tonearest", metadata !"fpexcept.strict")
40+ // UNCONSTRAINED: [[VRNDI1_I:%.*]] = call <2 x float> @llvm.nearbyint.v2f32(<2 x float> [[VRNDI_I:%.*]])
41+ // CONSTRAINED: [[VRNDI1_I:%.*]] = call <2 x float> @llvm.experimental.constrained.nearbyint.v2f32(<2 x float> [[VRNDI_I:%.*]], metadata !"round.tonearest", metadata !"fpexcept.strict")
4342// CHECK-ASM32: vrintr.f32 s{{[0-9]+}}, s{{[0-9]+}}
4443// CHECK-ASM32: vrintr.f32 s{{[0-9]+}}, s{{[0-9]+}}
4544// CHECK-ASM64: frinti v{{[0-9]+}}.2s, v{{[0-9]+}}.2s
@@ -49,9 +48,8 @@ float32x2_t test_vrndi_f32(float32x2_t a) {
4948}
5049
5150// COMMON-LABEL: test_vrndiq_f32
52- // COMMONIR: [[TMP0:%.*]] = bitcast <4 x float> %a to <16 x i8>
53- // UNCONSTRAINED: [[VRNDI1_I:%.*]] = call <4 x float> @llvm.nearbyint.v4f32(<4 x float> %a)
54- // CONSTRAINED: [[VRNDI1_I:%.*]] = call <4 x float> @llvm.experimental.constrained.nearbyint.v4f32(<4 x float> %a, metadata !"round.tonearest", metadata !"fpexcept.strict")
51+ // UNCONSTRAINED: [[VRNDI1_I:%.*]] = call <4 x float> @llvm.nearbyint.v4f32(<4 x float> [[VRNDI_I:%.*]])
52+ // CONSTRAINED: [[VRNDI1_I:%.*]] = call <4 x float> @llvm.experimental.constrained.nearbyint.v4f32(<4 x float> [[VRNDI_I:%.*]], metadata !"round.tonearest", metadata !"fpexcept.strict")
5553// CHECK-ASM32: vrintr.f32 s{{[0-9]+}}, s{{[0-9]+}}
5654// CHECK-ASM32: vrintr.f32 s{{[0-9]+}}, s{{[0-9]+}}
5755// CHECK-ASM32: vrintr.f32 s{{[0-9]+}}, s{{[0-9]+}}
0 commit comments