OpenShadingLanguage 1.00
# Compiled by oslc 1.11.17
# options: -q -O2 -I/build/blender/src/blender/intern/cycles/kernel/osl/shaders -I/usr/share/OSL/shaders -o /build/blender/src/blender/build/intern/cycles/kernel/osl/shaders/node_bump.oso
surface node_bump
param	int	invert	0		%read{23,23} %write{2147483647,-1}
param	int	use_object_space	0		%read{4,36} %write{2147483647,-1}
param	normal	NormalIn	0 0 0		%read{3,3} %write{0,0} %initexpr
param	float	Strength	0.100000001		%read{21,21} %write{2147483647,-1}
param	float	Distance	1		%read{22,22} %write{2147483647,-1}
param	float	SampleCenter	0		%read{15,17} %write{2147483647,-1}
param	float	SampleX	0		%read{15,15} %write{2147483647,-1}
param	float	SampleY	0		%read{17,17} %write{2147483647,-1}
oparam	normal	NormalOut	0 0 0		%read{31,54} %write{1,153} %initexpr
global	point	P	%read{2,2} %write{2147483647,-1} %derivs
global	vector	I	%read{40,57} %write{2147483647,-1}
global	normal	N	%read{0,1} %write{2147483647,-1}
global	normal	Ng	%read{44,152} %write{2147483647,-1}
local	vector	___360_R	%read{47,47} %write{43,43}
local	float	___360_threshold	%read{48,68} %write{46,46}
local	float	___360_NdotNg	%read{53,53} %write{52,52}
local	vector	___360_X	%read{56,151} %write{55,55}
local	float	___360_Ix	%read{59,109} %write{56,56}
local	float	___360_Iz	%read{61,114} %write{57,57}
local	float	___360_Ix2	%read{62,66} %write{59,59}
local	float	___360_Iz2	%read{62,62} %write{61,61}
local	float	___360_a	%read{65,70} %write{62,62}
local	float	___360_b	%read{71,73} %write{67,67}
local	float	___360_c	%read{71,74} %write{69,69}
local	float	___360_fac	%read{72,75} %write{70,70}
local	float	___360_N1_z2	%read{76,144} %write{72,72}
local	float	___360_N2_z2	%read{84,145} %write{75,75}
local	int	___360_valid1	%read{92,143} %write{83,115}
local	int	___360_valid2	%read{94,140} %write{91,116}
local	float	___360_N_new_x	%read{151,151} %write{124,147}
local	float	___360_N_new_z	%read{152,152} %write{128,148}
local	float	___363_N1_x	%read{103,132} %write{98,98}
local	float	___363_N1_z	%read{104,136} %write{99,99}
local	float	___363_N2_x	%read{109,133} %write{101,101}
local	float	___363_N2_z	%read{110,137} %write{102,102}
local	float	___363_R1	%read{115,134} %write{108,108}
local	float	___363_R2	%read{116,134} %write{114,114}
local	float	___366_Nz2	%read{146,148} %write{144,145}
local	point	Ptmp	%read{6,11} %write{2,6} %derivs
local	normal	Normal	%read{8,33} %write{3,9}
local	vector	dPdx	%read{13,14} %write{10,10}
local	vector	dPdy	%read{12,12} %write{11,11}
local	vector	Rx	%read{14,16} %write{12,12}
local	vector	Ry	%read{18,18} %write{13,13}
local	float	det	%read{20,26} %write{14,14}
local	vector	surfgrad	%read{28,28} %write{19,19}
local	float	absdet	%read{25,25} %write{20,20}
local	float	strength	%read{31,32} %write{21,21}
local	float	dist	%read{24,27} %write{22,24}
const	string	$const1	"object"		%read{6,37} %write{2147483647,-1}
const	string	$const2	"transform"		%read{5,7} %write{2147483647,-1}
const	string	$const3	"common"		%read{6,8} %write{2147483647,-1}
temp	normal	$tmp1	%read{9,9} %write{8,8}
temp	float	$tmp2	%read{16,16} %write{15,15}
temp	vector	$tmp3	%read{19,19} %write{16,16}
temp	float	$tmp4	%read{18,18} %write{17,17}
temp	vector	$tmp5	%read{19,19} %write{18,18}
const	float	$const4	0		%read{21,21} %write{2147483647,-1}
const	float	$const5	-1		%read{24,24} %write{2147483647,-1}
temp	normal	$tmp6	%read{29,29} %write{25,25}
temp	float	$tmp7	%read{27,27} %write{26,26}
temp	float	$tmp8	%read{28,28} %write{27,27}
temp	vector	$tmp9	%read{29,29} %write{28,28}
temp	normal	$tmp10	%read{30,30} %write{29,29}
temp	normal	$tmp11	%read{34,34} %write{31,31}
const	float	$const6	1		%read{32,146} %write{2147483647,-1}
temp	float	$tmp12	%read{33,33} %write{32,32}
temp	normal	$tmp13	%read{34,34} %write{33,33}
temp	normal	$tmp14	%read{35,35} %write{34,34}
temp	normal	$tmp15	%read{38,38} %write{37,37}
const	string	$const7	"world"		%read{37,37} %write{2147483647,-1}
const	string	$const8	"ensure_valid_reflection"		%read{39,39} %write{2147483647,-1}
temp	float	$tmp16	%read{41,41} %write{40,40}
temp	float	$tmp17	%read{42,42} %write{41,41}
const	float	$const10	2		%read{41,112} %write{2147483647,-1}
temp	normal	$tmp18	%read{43,43} %write{42,42}
const	float	$const11	0.899999976		%read{45,45} %write{2147483647,-1}
temp	float	$tmp19	%read{45,45} %write{44,44}
temp	float	$tmp20	%read{46,46} %write{45,45}
const	float	$const12	0.00999999978		%read{46,46} %write{2147483647,-1}
temp	float	$tmp21	%read{48,48} %write{47,47}
temp	int	$tmp22	%read{49,49} %write{48,48}
temp	normal	$tmp23	%read{54,54} %write{53,53}
temp	normal	$tmp24	%read{55,55} %write{54,54}
const	string	$const13	"sqr"		%read{58,63} %write{2147483647,-1}
temp	float	$tmp25	%read{65,65} %write{64,64}
temp	float	$tmp26	%read{66,66} %write{65,65}
temp	float	$tmp27	%read{67,67} %write{66,66}
temp	float	$tmp28	%read{69,69} %write{68,68}
const	float	$const14	0.5		%read{70,70} %write{2147483647,-1}
temp	float	$tmp29	%read{72,72} %write{71,71}
temp	float	$tmp30	%read{74,74} %write{73,73}
temp	float	$tmp31	%read{75,75} %write{74,74}
const	float	$const15	9.99999975e-06		%read{76,116} %write{2147483647,-1}
temp	int	$tmp32	%read{77,77} %write{76,76}
temp	int	$tmp33	%read{78,83} %write{77,82}
const	int	$const16	0		%read{77,140} %write{2147483647,-1}
temp	float	$tmp34	%read{80,80} %write{79,79}
temp	int	$tmp35	%read{81,81} %write{80,80}
temp	int	$tmp36	%read{82,82} %write{81,81}
temp	int	$tmp37	%read{85,85} %write{84,84}
temp	int	$tmp38	%read{86,91} %write{85,90}
temp	float	$tmp39	%read{88,88} %write{87,87}
temp	int	$tmp40	%read{89,89} %write{88,88}
temp	int	$tmp41	%read{90,90} %write{89,89}
temp	int	$tmp42	%read{93,96} %write{92,95}
temp	int	$tmp43	%read{95,95} %write{94,94}
temp	float	$tmp44	%read{98,98} %write{97,97}
temp	float	$tmp45	%read{101,101} %write{100,100}
temp	float	$tmp46	%read{105,105} %write{103,103}
temp	float	$tmp47	%read{105,105} %write{104,104}
temp	float	$tmp48	%read{106,106} %write{105,105}
temp	float	$tmp49	%read{107,107} %write{106,106}
temp	float	$tmp50	%read{108,108} %write{107,107}
temp	float	$tmp51	%read{111,111} %write{109,109}
temp	float	$tmp52	%read{111,111} %write{110,110}
temp	float	$tmp53	%read{112,112} %write{111,111}
temp	float	$tmp54	%read{113,113} %write{112,112}
temp	float	$tmp55	%read{114,114} %write{113,113}
temp	int	$tmp56	%read{118,121} %write{117,120}
temp	int	$tmp57	%read{120,120} %write{119,119}
temp	int	$tmp58	%read{123,123} %write{122,122}
temp	int	$tmp59	%read{127,127} %write{126,126}
temp	int	$tmp60	%read{131,131} %write{130,130}
temp	int	$tmp61	%read{135,135} %write{134,134}
temp	int	$tmp62	%read{139,142} %write{138,141}
temp	int	$tmp63	%read{141,141} %write{140,140}
temp	float	$tmp64	%read{147,147} %write{146,146}
temp	vector	$tmp65	%read{153,153} %write{151,151}
temp	normal	$tmp66	%read{153,153} %write{152,152}
code NormalIn
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:11
#                   normal NormalIn = N,
	assign		NormalIn N 	%filename{"/build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl"} %line{11} %argrw{"wr"}
code NormalOut
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:17
#                   output normal NormalOut = N)
	assign		NormalOut N 	%filename{"/build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl"} %line{17} %argrw{"wr"}
code ___main___
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:19
#   point Ptmp = P;
	assign		Ptmp P 	%filename{"/build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl"} %line{19} %argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:20
#   normal Normal = NormalIn;
	assign		Normal NormalIn 	%line{20} %argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:22
#   if (use_object_space) {
	if		use_object_space 10 10 	%line{22} %argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:23
#     Ptmp = transform("object", Ptmp);
	functioncall	$const2 7 	%line{23} %argrw{"r"}
# /usr/share/OSL/shaders/stdosl.h:263
# point  transform (string to, point p)  { return transform("common",to,p); }
	transform	Ptmp $const3 $const1 Ptmp 	%filename{"/usr/share/OSL/shaders/stdosl.h"} %line{263} %argrw{"wrrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:24
#     Normal = normalize(transform("object", Normal));
	functioncall	$const2 9 	%filename{"/build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl"} %line{24} %argrw{"r"}
# /usr/share/OSL/shaders/stdosl.h:261
# normal transform (string to, normal p) { return transform("common",to,p); }
	transformn	$tmp1 $const3 $const1 Normal 	%filename{"/usr/share/OSL/shaders/stdosl.h"} %line{261} %argrw{"wrrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:24
#     Normal = normalize(transform("object", Normal));
	normalize	Normal $tmp1 	%filename{"/build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl"} %line{24} %argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:28
#   vector dPdx = Dx(Ptmp);
	Dx		dPdx Ptmp 	%line{28} %argrw{"wr"} %argderivs{1}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:29
#   vector dPdy = Dy(Ptmp);
	Dy		dPdy Ptmp 	%line{29} %argrw{"wr"} %argderivs{1}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:31
#   vector Rx = cross(dPdy, Normal);
	cross		Rx dPdy Normal 	%line{31} %argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:32
#   vector Ry = cross(Normal, dPdx);
	cross		Ry Normal dPdx 	%line{32} %argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:35
#   float det = dot(dPdx, Rx);
	dot		det dPdx Rx 	%line{35} %argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:36
#   vector surfgrad = (SampleX - SampleCenter) * Rx + (SampleY - SampleCenter) * Ry;
	sub		$tmp2 SampleX SampleCenter 	%line{36} %argrw{"wrr"}
	mul		$tmp3 $tmp2 Rx 	%argrw{"wrr"}
	sub		$tmp4 SampleY SampleCenter 	%argrw{"wrr"}
	mul		$tmp5 $tmp4 Ry 	%argrw{"wrr"}
	add		surfgrad $tmp3 $tmp5 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:38
#   float absdet = fabs(det);
	fabs		absdet det 	%line{38} %argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:40
#   float strength = max(Strength, 0.0);
	max		strength Strength $const4 	%line{40} %argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:41
#   float dist = Distance;
	assign		dist Distance 	%line{41} %argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:43
#   if (invert)
	if		invert 25 25 	%line{43} %argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:44
#     dist *= -1.0;
	mul		dist dist $const5 	%line{44} %argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:47
#   NormalOut = normalize(absdet * Normal - dist * sign(det) * surfgrad);
	mul		$tmp6 absdet Normal 	%line{47} %argrw{"wrr"}
	sign		$tmp7 det 	%argrw{"wr"}
	mul		$tmp8 dist $tmp7 	%argrw{"wrr"}
	mul		$tmp9 $tmp8 surfgrad 	%argrw{"wrr"}
	sub		$tmp10 $tmp6 $tmp9 	%argrw{"wrr"}
	normalize	NormalOut $tmp10 	%argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:48
#   NormalOut = normalize(strength * NormalOut + (1.0 - strength) * Normal);
	mul		$tmp11 strength NormalOut 	%line{48} %argrw{"wrr"}
	sub		$tmp12 $const6 strength 	%argrw{"wrr"}
	mul		$tmp13 $tmp12 Normal 	%argrw{"wrr"}
	add		$tmp14 $tmp11 $tmp13 	%argrw{"wrr"}
	normalize	NormalOut $tmp14 	%argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:50
#   if (use_object_space) {
	if		use_object_space 39 39 	%line{50} %argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:51
#     NormalOut = normalize(transform("object", "world", NormalOut));
	transformn	$tmp15 $const1 $const7 NormalOut 	%line{51} %argrw{"wrrr"}
	normalize	NormalOut $tmp15 	%argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/node_bump.osl:54
#   NormalOut = ensure_valid_reflection(Ng, I, NormalOut);
	functioncall	$const8 155 	%line{54} %argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:78
#   vector R = 2 * dot(N, I) * N - I;
	dot		$tmp16 NormalOut I 	%filename{"/build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h"} %line{78} %argrw{"wrr"}
	mul		$tmp17 $const10 $tmp16 	%argrw{"wrr"}
	mul		$tmp18 $tmp17 NormalOut 	%argrw{"wrr"}
	sub		___360_R $tmp18 I 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:80
#   float threshold = min(0.9 * dot(Ng, I), 0.01);
	dot		$tmp19 Ng I 	%line{80} %argrw{"wrr"}
	mul		$tmp20 $const11 $tmp19 	%argrw{"wrr"}
	min		___360_threshold $tmp20 $const12 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:81
#   if (dot(Ng, R) >= threshold) {
	dot		$tmp21 Ng ___360_R 	%line{81} %argrw{"wrr"}
	ge		$tmp22 $tmp21 ___360_threshold 	%argrw{"wrr"}
	if		$tmp22 52 52 	%argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:82
#     return N;
	assign		NormalOut NormalOut 	%line{82} %argrw{"wr"}
	return
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:85
#   float NdotNg = dot(N, Ng);
	dot		___360_NdotNg NormalOut Ng 	%line{85} %argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:86
#   vector X = normalize(N - NdotNg * Ng);
	mul		$tmp23 ___360_NdotNg Ng 	%line{86} %argrw{"wrr"}
	sub		$tmp24 NormalOut $tmp23 	%argrw{"wrr"}
	normalize	___360_X $tmp24 	%argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:88
#   float Ix = dot(I, X), Iz = dot(I, Ng);
	dot		___360_Ix I ___360_X 	%line{88} %argrw{"wrr"}
	dot		___360_Iz I Ng 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:89
#   float Ix2 = sqr(Ix), Iz2 = sqr(Iz);
	functioncall	$const13 60 	%line{89} %argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:75
#     return x * x;
	mul		___360_Ix2 ___360_Ix ___360_Ix 	%line{75} %argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:89
#   float Ix2 = sqr(Ix), Iz2 = sqr(Iz);
	functioncall	$const13 62 	%line{89} %argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:75
#     return x * x;
	mul		___360_Iz2 ___360_Iz ___360_Iz 	%line{75} %argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:90
#   float a = Ix2 + Iz2;
	add		___360_a ___360_Ix2 ___360_Iz2 	%line{90} %argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:92
#   float b = sqrt(Ix2 * (a - sqr(threshold)));
	functioncall	$const13 65 	%line{92} %argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:75
#     return x * x;
	mul		$tmp25 ___360_threshold ___360_threshold 	%line{75} %argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:92
#   float b = sqrt(Ix2 * (a - sqr(threshold)));
	sub		$tmp26 ___360_a $tmp25 	%line{92} %argrw{"wrr"}
	mul		$tmp27 ___360_Ix2 $tmp26 	%argrw{"wrr"}
	sqrt		___360_b $tmp27 	%argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:93
#   float c = Iz * threshold + a;
	mul		$tmp28 ___360_Iz ___360_threshold 	%line{93} %argrw{"wrr"}
	add		___360_c $tmp28 ___360_a 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:95
#   float fac = 0.5 / a;
	div		___360_fac $const14 ___360_a 	%line{95} %argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:96
#   float N1_z2 = fac * (b + c), N2_z2 = fac * (-b + c);
	add		$tmp29 ___360_b ___360_c 	%line{96} %argrw{"wrr"}
	mul		___360_N1_z2 ___360_fac $tmp29 	%argrw{"wrr"}
	neg		$tmp30 ___360_b 	%argrw{"wr"}
	add		$tmp31 $tmp30 ___360_c 	%argrw{"wrr"}
	mul		___360_N2_z2 ___360_fac $tmp31 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:97
#   int valid1 = (N1_z2 > 1e-5) && (N1_z2 <= (1.0 + 1e-5));
	gt		$tmp32 ___360_N1_z2 $const15 	%line{97} %argrw{"wrr"}
	neq		$tmp33 $tmp32 $const16 	%argrw{"wrr"}
	if		$tmp33 83 83 	%argrw{"r"}
	add		$tmp34 $const6 $const15 	%argrw{"wrr"}
	le		$tmp35 ___360_N1_z2 $tmp34 	%argrw{"wrr"}
	neq		$tmp36 $tmp35 $const16 	%argrw{"wrr"}
	assign		$tmp33 $tmp36 	%argrw{"wr"}
	assign		___360_valid1 $tmp33 	%argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:98
#   int valid2 = (N2_z2 > 1e-5) && (N2_z2 <= (1.0 + 1e-5));
	gt		$tmp37 ___360_N2_z2 $const15 	%line{98} %argrw{"wrr"}
	neq		$tmp38 $tmp37 $const16 	%argrw{"wrr"}
	if		$tmp38 91 91 	%argrw{"r"}
	add		$tmp39 $const6 $const15 	%argrw{"wrr"}
	le		$tmp40 ___360_N2_z2 $tmp39 	%argrw{"wrr"}
	neq		$tmp41 $tmp40 $const16 	%argrw{"wrr"}
	assign		$tmp38 $tmp41 	%argrw{"wr"}
	assign		___360_valid2 $tmp38 	%argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:101
#   if (valid1 && valid2) {
	neq		$tmp42 ___360_valid1 $const16 	%line{101} %argrw{"wrr"}
	if		$tmp42 96 96 	%argrw{"r"}
	neq		$tmp43 ___360_valid2 $const16 	%argrw{"wrr"}
	assign		$tmp42 $tmp43 	%argrw{"wr"}
	if		$tmp42 138 151 	%argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:102
#     float N1_x = sqrt(1.0 - N1_z2), N1_z = sqrt(N1_z2);
	sub		$tmp44 $const6 ___360_N1_z2 	%line{102} %argrw{"wrr"}
	sqrt		___363_N1_x $tmp44 	%argrw{"wr"}
	sqrt		___363_N1_z ___360_N1_z2 	%argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:103
#     float N2_x = sqrt(1.0 - N2_z2), N2_z = sqrt(N2_z2);
	sub		$tmp45 $const6 ___360_N2_z2 	%line{103} %argrw{"wrr"}
	sqrt		___363_N2_x $tmp45 	%argrw{"wr"}
	sqrt		___363_N2_z ___360_N2_z2 	%argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:105
#     float R1 = 2 * (N1_x * Ix + N1_z * Iz) * N1_z - Iz;
	mul		$tmp46 ___363_N1_x ___360_Ix 	%line{105} %argrw{"wrr"}
	mul		$tmp47 ___363_N1_z ___360_Iz 	%argrw{"wrr"}
	add		$tmp48 $tmp46 $tmp47 	%argrw{"wrr"}
	mul		$tmp49 $const10 $tmp48 	%argrw{"wrr"}
	mul		$tmp50 $tmp49 ___363_N1_z 	%argrw{"wrr"}
	sub		___363_R1 $tmp50 ___360_Iz 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:106
#     float R2 = 2 * (N2_x * Ix + N2_z * Iz) * N2_z - Iz;
	mul		$tmp51 ___363_N2_x ___360_Ix 	%line{106} %argrw{"wrr"}
	mul		$tmp52 ___363_N2_z ___360_Iz 	%argrw{"wrr"}
	add		$tmp53 $tmp51 $tmp52 	%argrw{"wrr"}
	mul		$tmp54 $const10 $tmp53 	%argrw{"wrr"}
	mul		$tmp55 $tmp54 ___363_N2_z 	%argrw{"wrr"}
	sub		___363_R2 $tmp55 ___360_Iz 	%argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:108
#     valid1 = (R1 >= 1e-5);
	ge		___360_valid1 ___363_R1 $const15 	%line{108} %argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:109
#     valid2 = (R2 >= 1e-5);
	ge		___360_valid2 ___363_R2 $const15 	%line{109} %argrw{"wrr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:110
#     if (valid1 && valid2) {
	neq		$tmp56 ___360_valid1 $const16 	%line{110} %argrw{"wrr"}
	if		$tmp56 121 121 	%argrw{"r"}
	neq		$tmp57 ___360_valid2 $const16 	%argrw{"wrr"}
	assign		$tmp56 $tmp57 	%argrw{"wr"}
	if		$tmp56 130 138 	%argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:111
#       N_new_x = (R1 < R2) ? N1_x : N2_x;
	lt		$tmp58 ___363_R1 ___363_R2 	%line{111} %argrw{"wrr"}
	if		$tmp58 125 126 	%argrw{"r"}
	assign		___360_N_new_x ___363_N1_x 	%argrw{"wr"}
	assign		___360_N_new_x ___363_N2_x 	%argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:112
#       N_new_z = (R1 < R2) ? N1_z : N2_z;
	lt		$tmp59 ___363_R1 ___363_R2 	%line{112} %argrw{"wrr"}
	if		$tmp59 129 130 	%argrw{"r"}
	assign		___360_N_new_z ___363_N1_z 	%argrw{"wr"}
	assign		___360_N_new_z ___363_N2_z 	%argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:115
#       N_new_x = (R1 > R2) ? N1_x : N2_x;
	gt		$tmp60 ___363_R1 ___363_R2 	%line{115} %argrw{"wrr"}
	if		$tmp60 133 134 	%argrw{"r"}
	assign		___360_N_new_x ___363_N1_x 	%argrw{"wr"}
	assign		___360_N_new_x ___363_N2_x 	%argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:116
#       N_new_z = (R1 > R2) ? N1_z : N2_z;
	gt		$tmp61 ___363_R1 ___363_R2 	%line{116} %argrw{"wrr"}
	if		$tmp61 137 138 	%argrw{"r"}
	assign		___360_N_new_z ___363_N1_z 	%argrw{"wr"}
	assign		___360_N_new_z ___363_N2_z 	%argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:119
#   else if (valid1 || valid2) {
	neq		$tmp62 ___360_valid1 $const16 	%line{119} %argrw{"wrr"}
	if		$tmp62 140 142 	%argrw{"r"}
	neq		$tmp63 ___360_valid2 $const16 	%argrw{"wrr"}
	assign		$tmp62 $tmp63 	%argrw{"wr"}
	if		$tmp62 149 151 	%argrw{"r"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:120
#     float Nz2 = valid1 ? N1_z2 : N2_z2;
	if		___360_valid1 145 146 	%line{120} %argrw{"r"}
	assign		___366_Nz2 ___360_N1_z2 	%argrw{"wr"}
	assign		___366_Nz2 ___360_N2_z2 	%argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:121
#     N_new_x = sqrt(1.0 - Nz2);
	sub		$tmp64 $const6 ___366_Nz2 	%line{121} %argrw{"wrr"}
	sqrt		___360_N_new_x $tmp64 	%argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:122
#     N_new_z = sqrt(Nz2);
	sqrt		___360_N_new_z ___366_Nz2 	%line{122} %argrw{"wr"}
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:125
#     return Ng;
	assign		NormalOut Ng 	%line{125} %argrw{"wr"}
	return
# /build/blender/src/blender/intern/cycles/kernel/osl/shaders/stdcycles.h:128
#   return N_new_x * X + N_new_z * Ng;
	mul		$tmp65 ___360_N_new_x ___360_X 	%line{128} %argrw{"wrr"}
	mul		$tmp66 ___360_N_new_z Ng 	%argrw{"wrr"}
	add		NormalOut $tmp65 $tmp66 	%argrw{"wrr"}
	return
	end
