TFG-benchmarks/zfhmin_micro/zfhmin.c

58 lines
817 B
C
Raw Normal View History

2026-05-06 09:37:00 +02:00
#include <math.h>
#include <stdint.h>
#define N 10
static inline uint64_t read_cycles() {
uint64_t start;
asm volatile ("rdcycle %0" : "=r"(start));
return start;
}
int main() {
// fcvt.s.h
volatile float b;
volatile _Float16 d;
volatile double e;
volatile _Float16 g;
volatile _Float16 a = 3.0f;
read_cycles();
for (int i = 0; i < N; i++) {
b = (float) a;
}
read_cycles();
// fcvt.h.s
volatile float c = 3.0f;
read_cycles();
for (int i = 0; i < N; i++) {
d = (_Float16) c;
}
read_cycles();
// fcvt.d.h
read_cycles();
for (int i = 0; i < N; i++) {
double e = (double) a;
}
read_cycles();
// fcvt.h.d
volatile double f = 3.0f;
read_cycles();
for (int i = 0; i < N; i++) {
g = (_Float16) f;
}
read_cycles();
return 0;
}