Bug 73846 - [llvmpipe] lp_test_format fails with llvm-3.5svn >= r199602
Summary: [llvmpipe] lp_test_format fails with llvm-3.5svn >= r199602
Status: RESOLVED FIXED
Alias: None
Product: Mesa
Classification: Unclassified
Component: Other (show other bugs)
Version: git
Hardware: x86-64 (AMD64) All
: medium normal
Assignee: mesa-dev
QA Contact:
URL: http://llvm.org/bugs/show_bug.cgi?id=...
Whiteboard:
Keywords:
Depends on:
Blocks:
 
Reported: 2014-01-20 20:46 UTC by Vinson Lee
Modified: 2014-06-18 18:20 UTC (History)
3 users (show)

See Also:
i915 platform:
i915 features:


Attachments

Note You need to log in before you can comment on or make changes to this bug.
Description Vinson Lee 2014-01-20 20:46:20 UTC
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.
Comment 1 Vinson Lee 2014-03-02 02:21:07 UTC
mesa: fc25956badb8e1932cc19d8c97b4be16e92dfc65 (master)
llvm: 3.5svn r202603

lp_test_format is still failing with latest mesa and llvm.
Comment 2 Vinson Lee 2014-05-08 21:48:42 UTC
mesa: 74388dd24bc7fdb9e62ec18096163f5426e03fbf (master 10.3.0-devel)
llvm: 3.5.0svn r208355

lp_test_format is still failing with latest mesa and llvm.
Comment 3 Roland Scheidegger 2014-06-18 17:53:55 UTC
Fixed by 56335b44417bc3d49625f9637e2b95457f522ad2.
Comment 4 Vinson Lee 2014-06-18 18:04:09 UTC
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
Comment 5 Roland Scheidegger 2014-06-18 18:20:44 UTC
(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.