1*da0073e9SAndroid Build Coastguard Worker #pragma once 2*da0073e9SAndroid Build Coastguard Worker #include <cstdint> 3*da0073e9SAndroid Build Coastguard Worker 4*da0073e9SAndroid Build Coastguard Worker #include <c10/macros/Macros.h> 5*da0073e9SAndroid Build Coastguard Worker 6*da0073e9SAndroid Build Coastguard Worker namespace c10 { 7*da0073e9SAndroid Build Coastguard Worker 8*da0073e9SAndroid Build Coastguard Worker /** 9*da0073e9SAndroid Build Coastguard Worker * quint4x2 is for un-signed 4 bit quantized Tensors that are packed to byte 10*da0073e9SAndroid Build Coastguard Worker * boundary. 11*da0073e9SAndroid Build Coastguard Worker */ 12*da0073e9SAndroid Build Coastguard Worker struct alignas(1) quint4x2 { 13*da0073e9SAndroid Build Coastguard Worker using underlying = uint8_t; 14*da0073e9SAndroid Build Coastguard Worker uint8_t val_; 15*da0073e9SAndroid Build Coastguard Worker quint4x2() = default; quint4x2quint4x216*da0073e9SAndroid Build Coastguard Worker C10_HOST_DEVICE explicit quint4x2(uint8_t val) : val_(val) {} 17*da0073e9SAndroid Build Coastguard Worker }; 18*da0073e9SAndroid Build Coastguard Worker 19*da0073e9SAndroid Build Coastguard Worker } // namespace c10 20