https://gcc.gnu.org/bugzilla/show_bug.cgi?id=118673

--- Comment #1 from Sam James <sjames at gcc dot gnu.org> ---
If I drop the prints I added to getIntegerDotProductCapabilities, the
difference goes back to:
```
│  Disassembly of section .text._ZN4mlir5spirv6SDotOp15getCapabilitiesEv:
│
│  0000000000000000 <mlir::spirv::SDotOp::getCapabilities()>:
│  mlir::spirv::SDotOp::getCapabilities():
│       push   %r14
│ -     lea    0x0(%rip),%rax
│ - R_X86_64_PC32      
.rodata._ZZN4mlir5spirvL32getIntegerDotProductCapabilitiesINS0_6SDotOpEEEN4llvm11SmallVectorINS3_8ArrayRefINS0_10CapabilityEEELj1EEEPNS_9OperationEE13dotProductCap-0x4
│       mov    $0x1,%edx
│       push   %r13
│       push   %r12
│       push   %rbp
│       push   %rbx
│       mov    %rdi,%rbx
│ -     sub    $0x10,%rsp
│ +     sub    $0x20,%rsp
│       mov    (%rsi),%r13
│ -     mov    %rsp,%r12
│ -     mov    %rax,(%rsp)
│ -     movq   $0x1,0x8(%rsp)
│ +     lea    0x10(%rsp),%r12
│ +     lea    0xc(%rsp),%rax
│ +     movl   $0x1783,0xc(%rsp)
│       mov    %r12,%rsi
│ -     call   36 <mlir::spirv::SDotOp::getCapabilities()+0x36>
│ +     mov    %rax,0x10(%rsp)
│ +     movq   $0x1,0x18(%rsp)
│ +     call   3f <mlir::spirv::SDotOp::getCapabilities()+0x3f>
[...]
```

But it clearly affects the loads of the constants, anyway.

Reply via email to