// Copyright 2016 The SwiftShader Authors. All Rights Reserved. // // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. #ifndef sw_x86_hpp #define sw_x86_hpp #include "Reactor.hpp" namespace rr { namespace x86 { RValue cvtss2si(RValue val); RValue cvtps2dq(RValue val); RValue rcpss(RValue val); RValue sqrtss(RValue val); RValue rsqrtss(RValue val); RValue rcpps(RValue val); RValue sqrtps(RValue val); RValue rsqrtps(RValue val); RValue maxps(RValue x, RValue y); RValue minps(RValue x, RValue y); RValue roundss(RValue val, unsigned char imm); RValue floorss(RValue val); RValue ceilss(RValue val); RValue roundps(RValue val, unsigned char imm); RValue floorps(RValue val); RValue ceilps(RValue val); RValue paddsw(RValue x, RValue y); RValue psubsw(RValue x, RValue y); RValue paddusw(RValue x, RValue y); RValue psubusw(RValue x, RValue y); RValue paddsb(RValue x, RValue y); RValue psubsb(RValue x, RValue y); RValue paddusb(RValue x, RValue y); RValue psubusb(RValue x, RValue y); RValue pavgw(RValue x, RValue y); RValue pmaxsw(RValue x, RValue y); RValue pminsw(RValue x, RValue y); RValue pcmpgtw(RValue x, RValue y); RValue pcmpeqw(RValue x, RValue y); RValue pcmpgtb(RValue x, RValue y); RValue pcmpeqb(RValue x, RValue y); RValue packssdw(RValue x, RValue y); RValue packssdw(RValue x, RValue y); RValue packsswb(RValue x, RValue y); RValue packuswb(RValue x, RValue y); RValue packusdw(RValue x, RValue y); RValue psrlw(RValue x, unsigned char y); RValue psrlw(RValue x, unsigned char y); RValue psraw(RValue x, unsigned char y); RValue psraw(RValue x, unsigned char y); RValue psllw(RValue x, unsigned char y); RValue psllw(RValue x, unsigned char y); RValue pslld(RValue x, unsigned char y); RValue pslld(RValue x, unsigned char y); RValue psrad(RValue x, unsigned char y); RValue psrad(RValue x, unsigned char y); RValue psrld(RValue x, unsigned char y); RValue psrld(RValue x, unsigned char y); RValue pmaxsd(RValue x, RValue y); RValue pminsd(RValue x, RValue y); RValue pmaxud(RValue x, RValue y); RValue pminud(RValue x, RValue y); RValue pmulhw(RValue x, RValue y); RValue pmulhuw(RValue x, RValue y); RValue pmaddwd(RValue x, RValue y); RValue pmulhw(RValue x, RValue y); RValue pmulhuw(RValue x, RValue y); RValue pmaddwd(RValue x, RValue y); RValue movmskps(RValue x); RValue pmovmskb(RValue x); } // namespace x86 } // namespace rr #endif // rr_x86_hpp