Files
intel-graphics-compiler/visa
Liu, Fang L 75b46bbc7d Don't swap src operands if the swapping causes invalid datetype combination for mad instruction
Don't swap src0 and src1 of pseudo_mad instruction in HWConformity if the swapping
causes invalid datatype combination. For example:
pseudo_mad (32)  result1(0,0)<1>:d  x1(0,0)<2;0>:uw  r0.1<0;0>:d  z(0,0)<1;0>:d

In this case, we swap src0(actually src2) and src1 if src1 is scalar but src0 is
not, as src0(actually src2) has no regioning support:
pseudo_mad (32)  result1(0,0)<1>:d  r0.1<0;0>:d  x1(0,0)<2;0>:uw  z(0,0)<1;0>:d

After swapping, the datatype combination is invalid as it changes the datatype
combination from (W * D + D) to (D * W + D). If src2(actually src0) is D, HW only
supports (W * D + D).

Then we wouldn't generate mad, and we generate mul+add instead. But without this
swapping, actually we can generate mad as src0(actually src2) is aligned to dst.
2025-08-29 03:22:04 +02:00
..
2025-08-20 11:34:09 +02:00
2025-08-27 18:09:24 +02:00
2025-08-06 01:43:07 +02:00
2023-12-01 03:33:59 -05:00
2025-08-20 11:34:09 +02:00
2025-08-20 11:34:09 +02:00
2025-07-01 18:23:24 +02:00
2025-07-01 18:23:24 +02:00
2025-08-08 10:49:38 +02:00
2025-07-19 10:40:25 +02:00
2025-07-01 18:23:24 +02:00
2025-07-04 01:20:54 +02:00
2025-01-21 17:25:58 +01:00
2025-07-01 18:23:24 +02:00
2025-07-01 18:23:24 +02:00
2025-07-01 18:23:24 +02:00
2025-07-01 18:23:24 +02:00
2025-08-08 10:49:38 +02:00
2025-07-01 18:23:24 +02:00
2025-08-20 11:34:09 +02:00
2025-07-01 18:23:24 +02:00
2025-03-21 07:00:15 +01:00
2025-07-19 10:40:25 +02:00
2025-07-19 10:40:25 +02:00
2025-08-12 23:08:27 +02:00
2025-08-12 23:08:27 +02:00
2025-01-17 10:56:05 +01:00
2025-07-01 18:23:24 +02:00
2025-01-17 10:56:05 +01:00
2025-07-01 18:23:24 +02:00
2025-07-01 18:23:24 +02:00
2025-07-01 18:23:24 +02:00
2023-12-27 12:19:29 +01:00
2025-07-28 19:01:24 +02:00
2025-08-20 11:34:09 +02:00
2025-07-10 16:44:12 +02:00
2025-07-01 18:23:24 +02:00
2025-01-17 10:56:05 +01:00
2025-05-30 22:28:55 +02:00
2025-07-01 18:23:24 +02:00
2024-09-08 06:59:10 +02:00
2025-07-01 18:23:24 +02:00
2023-12-18 18:46:19 +01:00
2025-07-18 02:38:09 +02:00
2025-07-01 18:23:24 +02:00
2025-08-20 11:34:09 +02:00
2025-08-27 18:09:24 +02:00
2025-08-20 11:34:09 +02:00
2025-07-01 18:23:24 +02:00
2025-01-17 10:56:05 +01:00
2024-09-30 02:20:10 +02:00
2024-09-30 02:20:10 +02:00
2025-07-01 18:23:24 +02:00
2023-12-27 07:53:39 +01:00
2025-07-01 18:23:24 +02:00
2025-07-01 18:23:24 +02:00
2024-02-15 21:59:36 +01:00
2024-06-12 17:57:56 +02:00
2023-12-01 03:33:59 -05:00
2025-07-01 18:23:24 +02:00
2025-08-20 11:34:09 +02:00
2023-12-01 03:33:59 -05:00
2025-07-01 18:23:24 +02:00
2025-01-17 10:56:05 +01:00
2025-08-20 11:34:09 +02:00
2025-07-01 18:23:24 +02:00
2023-12-27 12:19:29 +01:00
2025-07-01 18:23:24 +02:00