There are other event in Core i7/Nehalem which you could use to achieve your objective (as I understand it you're looking to measure number of packed and scalar floating point operations for double and single precision numbers to use them to calculate FLOPS rate). Please look at EventNum: 10H, Umask value: 10H, FP_COMP_OPS_EXE.SSE_FP_PACKED - Counts number of SSE FP packed uops executed. EventNum: 10H, Umask value: 20H, FP_COMP_OPS_EXE.SSE_FP_SCALAR - Counts number of SSE FP scalar uops executed. EventNum: 10H, Umask value: 40H, FP_COMP_OPS_EXE.SSE_SINGLE_PRECISION - Counts number of SSE* FP single precision uops executed. EventNum: 10H, Umask value: 80H, FP_COMP_OPS_EXE.SSE_DOUBLE_PRECISION - Counts number of SSE* FP double precision uops executed.
BTW, to count all FLOPS, you may add FP_COMP_OPS_EXE.X87 (EventNum: 10H, Umask value: 01H) event, as some applications (predominantly 32-bit ones) still may be using x87.
The detailed description of Core i7/Nehalem events is available in Appendix A2 PERFORMANCE MONITORING EVENTS FOR INTEL COREI7 PROCESSOR FAMILY in Intel 64 and IA-32 Architectures Software Developers Manual Volume 3B: System Programming Guide, Part 2. It is available for download from our web-site www.intel.com/products/processor/manuals/.