Training courses

Kernel and Embedded Linux

Bootlin training courses

Embedded Linux, kernel,
Yocto Project, Buildroot, real-time,
graphics, boot time, debugging...

Bootlin logo

Elixir Cross Referencer

/* Test file for ARMv8.3 complex arithmetics instructions.  */
	.text

	.macro three_same op, sz
	.irp rot, 0, 90, 180, 270
	.irp d, 1.\sz, 2.\sz, 5.\sz, 13.\sz, 27.\sz
	.irp m, 2.\sz, 3.\sz, 5.\sz, 14.\sz, 31.\sz
	.irp n, 3.\sz, 4.\sz, 6.\sz, 15.\sz, 30.\sz
		\op v\d, v\m, v\n, #\rot
	.endr
	.endr
	.endr
	.endr
	.endm

	.macro three_element op, sz1, sz2, idx
	.irp rot, 0, 90, 180, 270
	.irp d, 1.\sz1, 2.\sz1, 5.\sz1, 13.\sz1, 27.\sz1
	.irp m, 2.\sz1, 3.\sz1, 5.\sz1, 14.\sz1, 31.\sz1
	.irp n, 3.\sz2, 4.\sz2, 6.\sz2, 15.\sz2, 30.\sz2
		\op v\d, v\m, v\n[\idx], #\rot
	.endr
	.endr
	.endr
	.endr
	.endm

	.macro three_same_rot op, sz
	.irp rot, 90, 270
	.irp d, 1.\sz, 2.\sz, 5.\sz, 13.\sz, 27.\sz
	.irp m, 2.\sz, 3.\sz, 5.\sz, 14.\sz, 31.\sz
	.irp n, 3.\sz, 4.\sz, 6.\sz, 15.\sz, 30.\sz
		\op v\d, v\m, v\n, #\rot
	.endr
	.endr
	.endr
	.endr
	.endm

	/* Three-same operands FCMLA.  */
	three_same fcmla, 2d
	three_same fcmla, 2s
	three_same fcmla, 4s
	three_same fcmla, 4h
	three_same fcmla, 8h

	/* Indexed element FCMLA.  */
	three_element fcmla, 4s, s, 0
	three_element fcmla, 4s, s, 1

	three_element fcmla, 4h, h, 0
	three_element fcmla, 4h, h, 1

	three_element fcmla, 8h, h, 0
	three_element fcmla, 8h, h, 1
	three_element fcmla, 8h, h, 2
	three_element fcmla, 8h, h, 3

	/* Three-same operands FADD.  */
	three_same_rot fcadd, 2d
	three_same_rot fcadd, 2s
	three_same_rot fcadd, 4s
	three_same_rot fcadd, 4h
	three_same_rot fcadd, 8h