llvm / llvm-project

The LLVM Project is a collection of modular and reusable compiler and toolchain technologies.
http://llvm.org
Other
28.65k stars 11.84k forks source link

arm_neon_intrinsics.c test fails #27268

Closed Weverything closed 8 years ago

Weverything commented 8 years ago
Bugzilla Link 26894
Resolution FIXED
Resolved on Mar 09, 2016 22:40
Version trunk
OS Linux
CC @TNorthover

Extended Description

arm_neon_intrinsics.c test has two problems. The last change to this test was in r263048. This test is marked "REQUIRES: long_tests" which hides this test from most configs.

1) The RUN line is incorrect: // RUN: %clang_cc1 -triple thumbv7s-apple-darwin -target-abi apcs-gnu\ // RUN: -target-cpu swift -ffreestanding -emit-llvm -S -o - %s\ // RUN: opt -S -mem2reg | FileCheck %s Clang doesn't need the -S flag, and opt is an argument to Clang due to a missing pipe. This is fixed to: // RUN: %clang_cc1 -triple thumbv7s-apple-darwin -target-abi apcs-gnu\ // RUN: -target-cpu swift -ffreestanding -emit-llvm -o - %s\ // RUN: | opt -S -mem2reg | FileCheck %s

2) Even with the fixed RUN line, the FileCheck fails due to multiple errors. Here is the start of it:

llvm/tools/clang/test/CodeGen/arm_neon_intrinsics.c:9:11: error: expected string not found in input // CHECK: [[VABD_I_I:%.*]] = call <8 x i8> @​llvm.aarch64.neon.sabd.v8i8(<8 x i8> %b, <8 x i8> %c) #​4 ^

:74:1: note: scanning from here entry: ^ :75:9: note: possible intended match here %vabd_v.i.i = call <8 x i8> @​llvm.arm.neon.vabds.v8i8(<8 x i8> %b, <8 x i8> %c) #​4 ^ llvm/tools/clang/test/CodeGen/arm_neon_intrinsics.c:21:11: error: expected string not found in input // CHECK: [[VABD2_I_I:%.*]] = call <4 x i16> @​llvm.aarch64.neon.sabd.v4i16(<4 x i16> [[VABD_I_I]], <4 x i16> [[VABD1_I_I]]) #​4 ^ :87:2: note: scanning from here %vabd_v2.i.i = call <4 x i16> @​llvm.arm.neon.vabds.v4i16(<4 x i16> %vabd_v.i.i, <4 x i16> %vabd_v1.i.i) #​4 ^ :87:2: note: with variable "VABD_I_I" equal to "%vabd_v.i.i" %vabd_v2.i.i = call <4 x i16> @​llvm.arm.neon.vabds.v4i16(<4 x i16> %vabd_v.i.i, <4 x i16> %vabd_v1.i.i) #​4 ^ :87:2: note: with variable "VABD1_I_I" equal to "%vabd_v1.i.i" %vabd_v2.i.i = call <4 x i16> @​llvm.arm.neon.vabds.v4i16(<4 x i16> %vabd_v.i.i, <4 x i16> %vabd_v1.i.i) #​4 ^ :87:10: note: possible intended match here %vabd_v2.i.i = call <4 x i16> @​llvm.arm.neon.vabds.v4i16(<4 x i16> %vabd_v.i.i, <4 x i16> %vabd_v1.i.i) #​4 ^ llvm/tools/clang/test/CodeGen/arm_neon_intrinsics.c:33:11: error: expected string not found in input // CHECK: [[VABD2_I_I:%.*]] = call <2 x i32> @​llvm.aarch64.neon.sabd.v2i32(<2 x i32> [[VABD_I_I]], <2 x i32> [[VABD1_I_I]]) #​4 ^ :101:2: note: scanning from here %vabd_v2.i.i = call <2 x i32> @​llvm.arm.neon.vabds.v2i32(<2 x i32> %vabd_v.i.i, <2 x i32> %vabd_v1.i.i) #​4 ^ :101:2: note: with variable "VABD_I_I" equal to "%vabd_v.i.i" %vabd_v2.i.i = call <2 x i32> @​llvm.arm.neon.vabds.v2i32(<2 x i32> %vabd_v.i.i, <2 x i32> %vabd_v1.i.i) #​4 ^ :101:2: note: with variable "VABD1_I_I" equal to "%vabd_v1.i.i" %vabd_v2.i.i = call <2 x i32> @​llvm.arm.neon.vabds.v2i32(<2 x i32> %vabd_v.i.i, <2 x i32> %vabd_v1.i.i) #​4 ^ :101:10: note: possible intended match here %vabd_v2.i.i = call <2 x i32> @​llvm.arm.neon.vabds.v2i32(<2 x i32> %vabd_v.i.i, <2 x i32> %vabd_v1.i.i) #​4 ^
TNorthover commented 8 years ago

Should be fixed and re-enabled by r263093. Let me know if you have any problems, and sorry about the breakage.

TNorthover commented 8 years ago

(And thanks for taking care of the temporary workaround).

TNorthover commented 8 years ago

Ouch, that's really rather scary. Working on a fix now.

Weverything commented 8 years ago

The RUN lines are fixed and the FileCheck portion is disabled in r263091.

Weverything commented 8 years ago

assigned to @TNorthover