setOperationAction(ISD::ADD, MVT::v16i32, Legal) in isellowering.cpp


I want to ask why the following is not defined in x86isellowering.cpp

    setOperationAction(ISD::ADD,MVT::v16i32, Legal);

means i havent seen this in x86iselolwering.cpp then how it considers v16i32 add/ sub a legal operation? but i have seen this defined for mul i.e

    setOperationAction(ISD::MUL, MVT::v16i32, Legal);

but this is not defined for add and sub why??

I think ADD and SUB are called in a loop that iterates over a list of types.