U.S. stock gains push S&P 500 to record