Some early models of Intel 80386 processors had a bug with 32-bit integer multiplication. Those which were found to have the bug were marked "16-bit S/W ONLY" (not sure what S/W is supposed to mean), while the clean ones were marked with ΣΣ. How could software detect if it's running on a buggy CPU? Because not detecting this could lead to some serious erroneous results, even within the OS (unlike the Pentium FDIV bug, which was minor).
Software can identify those early steppings on the 386 by checking whether the XBTS and/or IBTS instruction can be executed, since these instructions were dropped in later chip revisions.
Software must, however, first check whether the CPU is really an 80386 and not 486, because the some early steppings of the 486 temporarily re-used the opcodes of these two instructions for the CMPXCHG instruction (what wonderful design decisions ;) ).
Other than that, it is only possible to check by actually multiplying and seeing if you get a proper result. Windows installers apparently did that by computing and verifying the result of 0x81 × 0x0417A000. I cannot verify whether that is a 100% accurate check, but doubt it, because the bug actually seems to be a on-chip power supply problem that might also depend on environmental conditions.
It can be tested by performing various multiplication operations and verifying the result. List of such code that performs ten tests with various memory and register based operands is available for example at pcjs.org, but as others have already pointed out, the problem may only manifest under certain conditions and can depend on e.g. CPU supply voltage, so it is possible that these tests will not necessarily detect a buggy CPU even if all tests pass.