Bootstrap 4 has five tiers and only four of them have an infix, which is why col-sm-6 exists and col-xs-6 does not.
<!-- Bootstrap 3 -->
<div class="col-xs-12 col-md-6">
<!-- Bootstrap 4: xs is the default, so it has no name -->
<div class="col-12 col-md-6">
<!-- and the one that catches people: equal-width columns -->
<div class="col"></div>
<div class="col"></div>
The reasoning is mobile-first — the unprefixed class is the smallest tier and everything else is an override — and a mechanical upgrade that renames col-xs-* to col-* is correct. The bare col for equal widths is new and genuinely useful, since it removes the arithmetic from any row where the columns should just share. Grid gutters moved to padding on the column rather than negative margins on the row, which is why a custom row wrapper from 3 usually needs adjusting.