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.


bug/show.html.tmpl processed on Mar 24, 2017 at 12:06:01.
(provided by the Example extension).