For everyone having issues with their BIOS or UEFI not recognizing their new M.2 NVMe SSD's, you have another option that usually works great. Either DUET or Clover UEFI bootloaders, booted from USB.
My Motherboard is a old 2010 Asus x58, and I use Clover. I installed clover to a fast SanDisk USB, then I set the legacy BIOS to Plug and Play OS = YES. Then I installed my new Samsung SM961 NVMe SSD. I set the BIOS boot order to boot to the Clover USB, then I launched Windows 10 installer from USB 3.0, installed Windows in normal UEFI mode onto the GPT partitioned SM961. Windows 10 is installed as the boot drive and it works PERFECTLY on a 7 year old system. I then set Clover to automatically boot Windows in 1 second. I then installed the latest Samsung NVMe drivers into the Samsung NVMe controller under Storage Controllers in Device Manager. It's about 8 times faster than a SATA II SSD now, and 3.5 times faster than a single SATA III connection.
Booting ANY NVMe SSD from Legacy BIOS Motherboards:
https://audiocricket.com/2016/12/31/booting-samsung-sm961-on-asus-p6t-se-mainboard/
Booting any NVMe SSD from UEFI based Motherboards:
http://www.win-raid.com/t2375f46-Guide-NVMe-boot-without-modding-your-UEFI-BIOS-Clover-EFI-bootloader-method.html
You can even modify your UEFI based motherboards bios possibly, just look for the guides on the win-raid website. I have been successful on every system so far even ones as old as 10 years. If you do not want to mod anything, pick up the Samsung 950 Pro, it has a built in legacy option rom that the older systems will usually see as a IDE controller. The BIOS will initialize it as a IDE device, but once the OS loads it will load it as a NVMe device.
NOTE: Make sure your M.2 port is PCIe based and not SATA based. If it is SATA M.2, then the best SSD you can do is probably the Samsung EVO M.2 SSD, which is no different than a normal SATA SSD.