The macros are used to generate code for conditions without a
corresponding branch. This is not a problem in practice, but
clang has no way of knowing that. Add a default branch with a
VERIFY(0) to indicate that it "can't happen"
```
In file included from \
/usr/home/mmacy/devel/ZoF/module/zfs/vdev_raidz_math_sse2.c:607:
/usr/home/mmacy/devel/ZoF/module/zfs/vdev_raidz_math_impl.h:281:3: \
error: no case matching constant switch condition '3' [-Werror]
```
Reviewed-by: George Melikov <mail@gmelikov.ru>
Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Matt Macy <mmacy@FreeBSD.org>
Closes #9434
#include <sys/types.h>
#include <sys/simd.h>
+#include <sys/debug.h>
#define __asm __asm__ __volatile__
"vpternlogd $0x6c,%zmm29, %zmm26, %" VR0(r) "\n" \
"vpternlogd $0x6c,%zmm29, %zmm25, %" VR1(r)); \
break; \
+ default: \
+ VERIFY(0); \
} \
}
COPY(R_23(r), _mul_x2_in); \
gf_x2_mul_fns[c](); \
COPY(_mul_x2_acc, R_23(r)); \
+ break; \
+ default: \
+ VERIFY(0); \
} \
}
#include <sys/types.h>
#include <sys/simd.h>
+#include <sys/debug.h>
#define __asm __asm__ __volatile__
__asm( \
"movdqa %" VR0(r) ", %" VR1(r)); \
break; \
+ default: \
+ VERIFY(0); \
} \
}
"movdqa %%" VR0(r)", 0x00(%[DST])\n" \
: : [DST] "r" (dst)); \
break; \
+ default: \
+ VERIFY(0); \
} \
}
gf_x1_mul_fns[c](); \
COPY(_mul_x1_acc, r); \
break; \
+ default: \
+ VERIFY(0); \
} \
}