blob: 66569fa99f9ef00be94dc9209a32c8f71279d72a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
|
#define EXPR
double simplefun(double x) {
return EXPR(x);
}
// A
// vmovsd .LC1(%rip), %xmm1
// vandpd %xmm1, xmm0, xmm0
// .LC1:
// 1111111111111111111111111111111111111111111111111111 11111111111 0
//
// Checks if any bit is set in the arg by anding with all ones
//
//
// B
// vxorpd %xmm0, %xmm0, %xmm0
//
// Sets the argument to zero
//
// C
// vmovsd .LC2(%rip), %xmm1
// vxorpd xmm1, %xmm0, %xmm0
// 10000000000000000000000000000000 00000000000000000000000000000000
//
// Flipping the sign bit
|