Starting with llvm-3.5svn r199602, lp_test_format fails SCALED unorm8 and USCALED unorm8 cases. commit 0487faa97b7afd3e186bd6a56c864b7e66e354a0 Author: Benjamin Kramer <benny.kra@googlemail.com> Date: Sun Jan 19 15:24:22 2014 +0000 InstCombine: Teach most integer add/sub/mul/div combines how to deal with vectors. git-svn-id: https://llvm.org/svn/llvm-project/llvm/trunk@199602 91177308-0d34-0410-b5e6-96231b3b80d8 From http://llvm.org/bugs/show_bug.cgi?id=18550#c5, the above commit exposed a Mesa bug.
mesa: fc25956badb8e1932cc19d8c97b4be16e92dfc65 (master) llvm: 3.5svn r202603 lp_test_format is still failing with latest mesa and llvm.
mesa: 74388dd24bc7fdb9e62ec18096163f5426e03fbf (master 10.3.0-devel) llvm: 3.5.0svn r208355 lp_test_format is still failing with latest mesa and llvm.
Fixed by 56335b44417bc3d49625f9637e2b95457f522ad2.
mesa: 56335b44417bc3d49625f9637e2b95457f522ad2 (master 10.3.0-devel) lp_test_format is still failing with llvm-3.5.0svn. $ ./build/linux-x86_64-debug/bin/lp_test_format Testing PIPE_FORMAT_B8G8R8A8_UNORM (float) ... Testing PIPE_FORMAT_B8G8R8A8_UNORM (unorm8) ... Testing PIPE_FORMAT_B8G8R8X8_UNORM (float) ... Testing PIPE_FORMAT_B8G8R8X8_UNORM (unorm8) ... Testing PIPE_FORMAT_A8R8G8B8_UNORM (float) ... Testing PIPE_FORMAT_A8R8G8B8_UNORM (unorm8) ... Testing PIPE_FORMAT_X8R8G8B8_UNORM (float) ... Testing PIPE_FORMAT_X8R8G8B8_UNORM (unorm8) ... Testing PIPE_FORMAT_B5G5R5A1_UNORM (float) ... Testing PIPE_FORMAT_B5G5R5A1_UNORM (unorm8) ... Testing PIPE_FORMAT_B4G4R4A4_UNORM (float) ... Testing PIPE_FORMAT_B4G4R4A4_UNORM (unorm8) ... Testing PIPE_FORMAT_B5G6R5_UNORM (float) ... Testing PIPE_FORMAT_B5G6R5_UNORM (unorm8) ... Testing PIPE_FORMAT_R10G10B10A2_UNORM (float) ... Testing PIPE_FORMAT_R10G10B10A2_UNORM (unorm8) ... Testing PIPE_FORMAT_L8_UNORM (float) ... Testing PIPE_FORMAT_L8_UNORM (unorm8) ... Testing PIPE_FORMAT_A8_UNORM (float) ... Testing PIPE_FORMAT_A8_UNORM (unorm8) ... Testing PIPE_FORMAT_I8_UNORM (float) ... Testing PIPE_FORMAT_I8_UNORM (unorm8) ... Testing PIPE_FORMAT_L8A8_UNORM (float) ... Testing PIPE_FORMAT_L8A8_UNORM (unorm8) ... Testing PIPE_FORMAT_L16_UNORM (float) ... Testing PIPE_FORMAT_L16_UNORM (unorm8) ... Testing PIPE_FORMAT_UYVY (float) ... Testing PIPE_FORMAT_UYVY (unorm8) ... Testing PIPE_FORMAT_YUYV (float) ... Testing PIPE_FORMAT_YUYV (unorm8) ... Testing PIPE_FORMAT_R32_FLOAT (float) ... Testing PIPE_FORMAT_R32_FLOAT (unorm8) ... Testing PIPE_FORMAT_R32G32_FLOAT (float) ... Testing PIPE_FORMAT_R32G32_FLOAT (unorm8) ... Testing PIPE_FORMAT_R32G32B32_FLOAT (float) ... Testing PIPE_FORMAT_R32G32B32_FLOAT (unorm8) ... Testing PIPE_FORMAT_R32G32B32A32_FLOAT (float) ... Testing PIPE_FORMAT_R32G32B32A32_FLOAT (unorm8) ... Testing PIPE_FORMAT_R32_UNORM (float) ... Testing PIPE_FORMAT_R32_UNORM (unorm8) ... Testing PIPE_FORMAT_R32G32_UNORM (float) ... Testing PIPE_FORMAT_R32G32_UNORM (unorm8) ... Testing PIPE_FORMAT_R32G32B32_UNORM (float) ... Testing PIPE_FORMAT_R32G32B32_UNORM (unorm8) ... Testing PIPE_FORMAT_R32G32B32A32_UNORM (float) ... Testing PIPE_FORMAT_R32G32B32A32_UNORM (unorm8) ... Testing PIPE_FORMAT_R32_USCALED (float) ... Testing PIPE_FORMAT_R32_USCALED (unorm8) ... Testing PIPE_FORMAT_R32G32_USCALED (float) ... LLVM ERROR: Cannot select: 0x371c9b0: v4i32 = X86ISD::UMIN 0x3747978, 0x371bf60 [ORD=5] [ID=33] 0x3747978: v4i32 = X86ISD::MOVSS 0x3747870, 0x371cab8 [ORD=4] [ID=32] 0x3747870: v4i32 = bitcast 0x3747660 [ORD=3] [ID=30] 0x3747660: v2i64 = scalar_to_vector 0x371f8d8 [ORD=3] [ID=28] 0x371f8d8: i64,ch = load 0x3738e80, 0x36f7008, 0x36f7638<LD8[%4](align=4)> [ORD=3] [ID=26] 0x36f7008: i64,ch = CopyFromReg 0x3738e80, 0x36f6f00 [ORD=1] [ID=23] 0x36f6f00: i64 = Register %vreg1 [ID=2] 0x36f7638: i64 = undef [ID=4] 0x371cab8: v4i32 = X86ISD::PSHUFD 0x3747870, 0x3747a80 [ORD=3] [ID=31] 0x3747870: v4i32 = bitcast 0x3747660 [ORD=3] [ID=30] 0x3747660: v2i64 = scalar_to_vector 0x371f8d8 [ORD=3] [ID=28] 0x371f8d8: i64,ch = load 0x3738e80, 0x36f7008, 0x36f7638<LD8[%4](align=4)> [ORD=3] [ID=26] 0x36f7008: i64,ch = CopyFromReg 0x3738e80, 0x36f6f00 [ORD=1] [ID=23] 0x36f6f00: i64 = Register %vreg1 [ID=2] 0x36f7638: i64 = undef [ID=4] 0x3747a80: i8 = Constant<16> [ID=15] 0x371bf60: v4i32 = bitcast 0x36f7b60 [ORD=5] [ID=29] 0x36f7b60: v2i64,ch = load 0x3738e80, 0x3749db8, 0x36f7638<LD16[ConstantPool]> [ORD=5] [ID=27] 0x3749db8: i64 = X86ISD::Wrapper 0x3749cb0 [ID=25] 0x3749cb0: i64 = TargetConstantPool<<4 x i32> <i32 1, i32 1, i32 1, i32 1>> 0 [ID=16] 0x36f7638: i64 = undef [ID=4] In function: fetch_r32g32_uscaled_unorm8
(In reply to comment #4) > mesa: 56335b44417bc3d49625f9637e2b95457f522ad2 (master 10.3.0-devel) > > lp_test_format is still failing with llvm-3.5.0svn. > > LLVM ERROR: Cannot select: 0x371c9b0: v4i32 = X86ISD::UMIN 0x3747978, > 0x371bf60 [ORD=5] [ID=33] > 0x3747978: v4i32 = X86ISD::MOVSS 0x3747870, 0x371cab8 [ORD=4] [ID=32] > 0x3747870: v4i32 = bitcast 0x3747660 [ORD=3] [ID=30] > 0x3747660: v2i64 = scalar_to_vector 0x371f8d8 [ORD=3] [ID=28] > 0x371f8d8: i64,ch = load 0x3738e80, 0x36f7008, > 0x36f7638<LD8[%4](align=4)> [ORD=3] [ID=26] That is due to an entirely different reason however, in particular looks like https://bugs.freedesktop.org/show_bug.cgi?id=77493 (it works as long as avx is enabled here), so it should be tracked there.
Use of freedesktop.org services, including Bugzilla, is subject to our Code of Conduct. How we collect and use information is described in our Privacy Policy.