[llvm] [AMDGPU] Add GFX12 encoding and aliases for existing SOP (SALU) instructions (PR #74305)

Georg Lehmann via llvm-commits llvm-commits at lists.llvm.org
Mon Dec 4 06:28:52 PST 2023


================
@@ -0,0 +1,6061 @@
+// RUN: llvm-mc -arch=amdgcn -show-encoding -mcpu=gfx1200 %s | FileCheck -check-prefix=GFX12 %s
+
+s_add_f32 s5, s1, s2
+// GFX12: encoding: [0x01,0x02,0x05,0xa0]
+
+s_add_f32 s105, s1, s2
+// GFX12: encoding: [0x01,0x02,0x69,0xa0]
+
+s_add_f32 s5, s105, s2
+// GFX12: encoding: [0x69,0x02,0x05,0xa0]
+
+s_add_f32 s5, s101, s2
+// GFX12: encoding: [0x65,0x02,0x05,0xa0]
+
+s_add_f32 s5, vcc_lo, s2
+// GFX12: encoding: [0x6a,0x02,0x05,0xa0]
+
+s_add_f32 s5, vcc_hi, s2
+// GFX12: encoding: [0x6b,0x02,0x05,0xa0]
+
+s_add_f32 s5, m0, s2
+// GFX12: encoding: [0x7d,0x02,0x05,0xa0]
+
+s_add_f32 s5, exec_lo, s2
+// GFX12: encoding: [0x7e,0x02,0x05,0xa0]
+
+s_add_f32 s5, exec_hi, s2
+// GFX12: encoding: [0x7f,0x02,0x05,0xa0]
+
+s_add_f32 s5, 0, s2
+// GFX12: encoding: [0x80,0x02,0x05,0xa0]
+
+s_add_f32 s5, -1, s2
+// GFX12: encoding: [0xc1,0x02,0x05,0xa0]
+
+s_add_f32 s5, 0.5, s2
+// GFX12: encoding: [0xf0,0x02,0x05,0xa0]
+
+s_add_f32 s5, -4.0, s2
+// GFX12: encoding: [0xf7,0x02,0x05,0xa0]
+
+s_add_f32 s5, 0xaf123456, s2
+// GFX12: encoding: [0xff,0x02,0x05,0xa0,0x56,0x34,0x12,0xaf]
+
+s_add_f32 s5, 0x3f717273, s2
+// GFX12: encoding: [0xff,0x02,0x05,0xa0,0x73,0x72,0x71,0x3f]
+
+s_add_f32 s5, s1, s105
+// GFX12: encoding: [0x01,0x69,0x05,0xa0]
+
+s_sub_f32 s5, s1, s2
+// GFX12: encoding: [0x01,0x02,0x85,0xa0]
+
+s_sub_f32 s105, s1, s2
+// GFX12: encoding: [0x01,0x02,0xe9,0xa0]
+
+s_sub_f32 s5, s105, s2
+// GFX12: encoding: [0x69,0x02,0x85,0xa0]
+
+s_sub_f32 s5, s101, s2
+// GFX12: encoding: [0x65,0x02,0x85,0xa0]
+
+s_sub_f32 s5, vcc_lo, s2
+// GFX12: encoding: [0x6a,0x02,0x85,0xa0]
+
+s_sub_f32 s5, vcc_hi, s2
+// GFX12: encoding: [0x6b,0x02,0x85,0xa0]
+
+s_sub_f32 s5, m0, s2
+// GFX12: encoding: [0x7d,0x02,0x85,0xa0]
+
+s_sub_f32 s5, exec_lo, s2
+// GFX12: encoding: [0x7e,0x02,0x85,0xa0]
+
+s_sub_f32 s5, exec_hi, s2
+// GFX12: encoding: [0x7f,0x02,0x85,0xa0]
+
+s_sub_f32 s5, 0, s2
+// GFX12: encoding: [0x80,0x02,0x85,0xa0]
+
+s_sub_f32 s5, -1, s2
+// GFX12: encoding: [0xc1,0x02,0x85,0xa0]
+
+s_sub_f32 s5, 0.5, s2
+// GFX12: encoding: [0xf0,0x02,0x85,0xa0]
+
+s_sub_f32 s5, -4.0, s2
+// GFX12: encoding: [0xf7,0x02,0x85,0xa0]
+
+s_sub_f32 s5, 0xaf123456, s2
+// GFX12: encoding: [0xff,0x02,0x85,0xa0,0x56,0x34,0x12,0xaf]
+
+s_sub_f32 s5, 0x3f717273, s2
+// GFX12: encoding: [0xff,0x02,0x85,0xa0,0x73,0x72,0x71,0x3f]
+
+s_sub_f32 s5, s1, s105
+// GFX12: encoding: [0x01,0x69,0x85,0xa0]
+
+s_mul_f32 s5, s1, s2
+// GFX12: encoding: [0x01,0x02,0x05,0xa2]
+
+s_mul_f32 s105, s1, s2
+// GFX12: encoding: [0x01,0x02,0x69,0xa2]
+
+s_mul_f32 s5, s105, s2
+// GFX12: encoding: [0x69,0x02,0x05,0xa2]
+
+s_mul_f32 s5, s103, s2
+// GFX12: encoding: [0x67,0x02,0x05,0xa2]
+
+s_mul_f32 s5, vcc_lo, s2
+// GFX12: encoding: [0x6a,0x02,0x05,0xa2]
+
+s_mul_f32 s5, vcc_hi, s2
+// GFX12: encoding: [0x6b,0x02,0x05,0xa2]
+
+s_mul_f32 s5, ttmp11, s2
+// GFX12: encoding: [0x77,0x02,0x05,0xa2]
+
+s_mul_f32 s5, m0, s2
+// GFX12: encoding: [0x7d,0x02,0x05,0xa2]
+
+s_mul_f32 s5, exec_lo, s2
+// GFX12: encoding: [0x7e,0x02,0x05,0xa2]
+
+s_mul_f32 s5, exec_hi, s2
+// GFX12: encoding: [0x7f,0x02,0x05,0xa2]
+
+s_mul_f32 s5, 0, s2
+// GFX12: encoding: [0x80,0x02,0x05,0xa2]
+
+s_mul_f32 s5, -1, s2
+// GFX12: encoding: [0xc1,0x02,0x05,0xa2]
+
+s_mul_f32 s5, 0.5, s2
+// GFX12: encoding: [0xf0,0x02,0x05,0xa2]
+
+s_mul_f32 s5, -4.0, s2
+// GFX12: encoding: [0xf7,0x02,0x05,0xa2]
+
+s_mul_f32 s5, 0xaf123456, s2
+// GFX12: encoding: [0xff,0x02,0x05,0xa2,0x56,0x34,0x12,0xaf]
+
+s_mul_f32 s5, 0x3f717273, s2
+// GFX12: encoding: [0xff,0x02,0x05,0xa2,0x73,0x72,0x71,0x3f]
+
+s_mul_f32 s5, s1, s105
+// GFX12: encoding: [0x01,0x69,0x05,0xa2]
+
+s_min_num_f32 s5, s1, s2
+// GFX12: encoding: [0x01,0x02,0x05,0xa1]
+
+s_min_num_f32 s105, s1, s2
+// GFX12: encoding: [0x01,0x02,0x69,0xa1]
+
+s_min_num_f32 s5, s105, s2
+// GFX12: encoding: [0x69,0x02,0x05,0xa1]
+
+s_min_num_f32 s5, s103, s2
+// GFX12: encoding: [0x67,0x02,0x05,0xa1]
+
+s_min_num_f32 s5, vcc_lo, s2
+// GFX12: encoding: [0x6a,0x02,0x05,0xa1]
+
+s_min_num_f32 s5, vcc_hi, s2
+// GFX12: encoding: [0x6b,0x02,0x05,0xa1]
+
+s_min_num_f32 s5, ttmp11, s2
+// GFX12: encoding: [0x77,0x02,0x05,0xa1]
+
+s_min_num_f32 s5, m0, s2
+// GFX12: encoding: [0x7d,0x02,0x05,0xa1]
+
+s_min_num_f32 s5, exec_lo, s2
+// GFX12: encoding: [0x7e,0x02,0x05,0xa1]
+
+s_min_num_f32 s5, exec_hi, s2
+// GFX12: encoding: [0x7f,0x02,0x05,0xa1]
+
+s_min_num_f32 s5, 0, s2
+// GFX12: encoding: [0x80,0x02,0x05,0xa1]
+
+s_min_num_f32 s5, -1, s2
+// GFX12: encoding: [0xc1,0x02,0x05,0xa1]
+
+s_min_num_f32 s5, 0.5, s2
+// GFX12: encoding: [0xf0,0x02,0x05,0xa1]
+
+s_min_num_f32 s5, -4.0, s2
+// GFX12: encoding: [0xf7,0x02,0x05,0xa1]
+
+s_min_num_f32 s5, 0xaf123456, s2
+// GFX12: encoding: [0xff,0x02,0x05,0xa1,0x56,0x34,0x12,0xaf]
+
+s_min_num_f32 s5, 0x3f717273, s2
+// GFX12: encoding: [0xff,0x02,0x05,0xa1,0x73,0x72,0x71,0x3f]
+
+s_min_num_f32 s5, s1, s105
+// GFX12: encoding: [0x01,0x69,0x05,0xa1]
+
+s_max_num_f32 s5, s1, s2
+// GFX12: encoding: [0x01,0x02,0x85,0xa1]
+
+s_max_num_f32 s105, s1, s2
+// GFX12: encoding: [0x01,0x02,0xe9,0xa1]
+
+s_max_num_f32 s5, s105, s2
+// GFX12: encoding: [0x69,0x02,0x85,0xa1]
+
+s_max_num_f32 s5, s103, s2
+// GFX12: encoding: [0x67,0x02,0x85,0xa1]
+
+s_max_num_f32 s5, vcc_lo, s2
+// GFX12: encoding: [0x6a,0x02,0x85,0xa1]
+
+s_max_num_f32 s5, vcc_hi, s2
+// GFX12: encoding: [0x6b,0x02,0x85,0xa1]
+
+s_max_num_f32 s5, ttmp11, s2
+// GFX12: encoding: [0x77,0x02,0x85,0xa1]
+
+s_max_num_f32 s5, m0, s2
+// GFX12: encoding: [0x7d,0x02,0x85,0xa1]
+
+s_max_num_f32 s5, exec_lo, s2
+// GFX12: encoding: [0x7e,0x02,0x85,0xa1]
+
+s_max_num_f32 s5, exec_hi, s2
+// GFX12: encoding: [0x7f,0x02,0x85,0xa1]
+
+s_max_num_f32 s5, 0, s2
+// GFX12: encoding: [0x80,0x02,0x85,0xa1]
+
+s_max_num_f32 s5, -1, s2
+// GFX12: encoding: [0xc1,0x02,0x85,0xa1]
+
+s_max_num_f32 s5, 0.5, s2
+// GFX12: encoding: [0xf0,0x02,0x85,0xa1]
+
+s_max_num_f32 s5, -4.0, s2
+// GFX12: encoding: [0xf7,0x02,0x85,0xa1]
+
+s_max_num_f32 s5, 0xaf123456, s2
+// GFX12: encoding: [0xff,0x02,0x85,0xa1,0x56,0x34,0x12,0xaf]
+
+s_max_num_f32 s5, 0x3f717273, s2
+// GFX12: encoding: [0xff,0x02,0x85,0xa1,0x73,0x72,0x71,0x3f]
+
+s_max_num_f32 s5, s1, s105
+// GFX12: encoding: [0x01,0x69,0x85,0xa1]
+
+s_fmac_f32 s5, s1, s2
+// GFX12: encoding: [0x01,0x02,0x85,0xa3]
+
+s_fmac_f32 s105, s1, s2
+// GFX12: encoding: [0x01,0x02,0xe9,0xa3]
+
+s_fmac_f32 s5, s105, s2
+// GFX12: encoding: [0x69,0x02,0x85,0xa3]
+
+s_fmac_f32 s5, s103, s2
+// GFX12: encoding: [0x67,0x02,0x85,0xa3]
+
+s_fmac_f32 s5, vcc_lo, s2
+// GFX12: encoding: [0x6a,0x02,0x85,0xa3]
+
+s_fmac_f32 s5, vcc_hi, s2
+// GFX12: encoding: [0x6b,0x02,0x85,0xa3]
+
+s_fmac_f32 s5, ttmp11, s2
+// GFX12: encoding: [0x77,0x02,0x85,0xa3]
+
+s_fmac_f32 s5, m0, s2
+// GFX12: encoding: [0x7d,0x02,0x85,0xa3]
+
+s_fmac_f32 s5, exec_lo, s2
+// GFX12: encoding: [0x7e,0x02,0x85,0xa3]
+
+s_fmac_f32 s5, exec_hi, s2
+// GFX12: encoding: [0x7f,0x02,0x85,0xa3]
+
+s_fmac_f32 s5, 0, s2
+// GFX12: encoding: [0x80,0x02,0x85,0xa3]
+
+s_fmac_f32 s5, -1, s2
+// GFX12: encoding: [0xc1,0x02,0x85,0xa3]
+
+s_fmac_f32 s5, 0.5, s2
+// GFX12: encoding: [0xf0,0x02,0x85,0xa3]
+
+s_fmac_f32 s5, -4.0, s2
+// GFX12: encoding: [0xf7,0x02,0x85,0xa3]
+
+s_fmac_f32 s5, 0xaf123456, s2
+// GFX12: encoding: [0xff,0x02,0x85,0xa3,0x56,0x34,0x12,0xaf]
+
+s_fmac_f32 s5, 0x3f717273, s2
+// GFX12: encoding: [0xff,0x02,0x85,0xa3,0x73,0x72,0x71,0x3f]
+
+s_fmac_f32 s5, s1, s105
+// GFX12: encoding: [0x01,0x69,0x85,0xa3]
+
+s_fmamk_f32 s5, s1, 0x11213141, s3
+// GFX12: encoding: [0x01,0x03,0x05,0xa3,0x41,0x31,0x21,0x11]
+
+s_fmamk_f32 s105, s1, 0x11213141, s3
+// GFX12: encoding: [0x01,0x03,0x69,0xa3,0x41,0x31,0x21,0x11]
+
+s_fmamk_f32 s5, s105, 0x11213141, s3
+// GFX12: encoding: [0x69,0x03,0x05,0xa3,0x41,0x31,0x21,0x11]
+
+s_fmamk_f32 s5, 0, 0x11213141, s3
+// GFX12: encoding: [0x80,0x03,0x05,0xa3,0x41,0x31,0x21,0x11]
+
+s_fmamk_f32 s5, -1, 0x11213141, s3
+// GFX12: encoding: [0xc1,0x03,0x05,0xa3,0x41,0x31,0x21,0x11]
+
+s_fmamk_f32 s5, 0.5, 0x11213141, s3
+// GFX12: encoding: [0xf0,0x03,0x05,0xa3,0x41,0x31,0x21,0x11]
+
+s_fmamk_f32 s5, -4.0, 0x11213141, s3
+// GFX12: encoding: [0xf7,0x03,0x05,0xa3,0x41,0x31,0x21,0x11]
+
+s_fmamk_f32 s5, s1, 0xa1b1c1d1, s3
+// GFX12: encoding: [0x01,0x03,0x05,0xa3,0xd1,0xc1,0xb1,0xa1]
+
+s_fmamk_f32 s5, s1, 0x11213141, s105
+// GFX12: encoding: [0x01,0x69,0x05,0xa3,0x41,0x31,0x21,0x11]
+
+s_fmamk_f32 s5, 0x11213141, 0x11213141, s105
+// GFX12 encoding: [0xff,0x69,0x05,0xa3,0x41,0x31,0x21,0x11]
+
+s_fmamk_f32 s5, s105, 0x11213141, 0x11213141
+// GFX12 encoding: [0x69,0xff,0x05,0xa3,0x41,0x31,0x21,0x11]
+
+s_fmaak_f32 s5, s1, s2, 0x11213141
+// GFX12: encoding: [0x01,0x02,0x85,0xa2,0x41,0x31,0x21,0x11]
+
+s_fmaak_f32 s105, s1, s2, 0x11213141
+// GFX12: encoding: [0x01,0x02,0xe9,0xa2,0x41,0x31,0x21,0x11]
+
+s_fmaak_f32 s5, s105, s2, 0x11213141
+// GFX12: encoding: [0x69,0x02,0x85,0xa2,0x41,0x31,0x21,0x11]
+
+s_fmaak_f32 s5, 0, s2, 0x11213141
+// GFX12: encoding: [0x80,0x02,0x85,0xa2,0x41,0x31,0x21,0x11]
+
+s_fmaak_f32 s5, -1, s2, 0x11213141
+// GFX12: encoding: [0xc1,0x02,0x85,0xa2,0x41,0x31,0x21,0x11]
+
+s_fmaak_f32 s5, 0.5, s2, 0x11213141
+// GFX12: encoding: [0xf0,0x02,0x85,0xa2,0x41,0x31,0x21,0x11]
+
+s_fmaak_f32 s5, -4.0, s2, 0x11213141
+// GFX12: encoding: [0xf7,0x02,0x85,0xa2,0x41,0x31,0x21,0x11]
+
+s_fmaak_f32 s5, s1, s105, 0x11213141
+// GFX12: encoding: [0x01,0x69,0x85,0xa2,0x41,0x31,0x21,0x11]
+
+s_fmaak_f32 s5, s1, s2, 0xa1b1c1d1
+// GFX12: encoding: [0x01,0x02,0x85,0xa2,0xd1,0xc1,0xb1,0xa1]
+
+s_fmaak_f32 s5, 0x11213141, s2, 0x11213141
+// GFX12: encoding: [0xff,0x02,0x85,0xa2,0x41,0x31,0x21,0x11]
+
+s_fmaak_f32 s5, s105, 0x11213141, 0x11213141
+// GFX12: encoding: [0x69,0xff,0x85,0xa2,0x41,0x31,0x21,0x11]
+
+s_fmaak_f32 s5, 0x11213141, 0x11213141, 0x11213141
+// GFX12: encoding: [0xff,0xff,0x85,0xa2,0x41,0x31,0x21,0x11]
+
+s_cvt_pk_rtz_f16_f32 s5, s1, s2
+// GFX12: encoding: [0x01,0x02,0x05,0xa4]
+
+s_cvt_pk_rtz_f16_f32 s105, s1, s2
+// GFX12: encoding: [0x01,0x02,0x69,0xa4]
+
+s_cvt_pk_rtz_f16_f32 s5, s105, s2
+// GFX12: encoding: [0x69,0x02,0x05,0xa4]
+
+s_cvt_pk_rtz_f16_f32 s5, s103, s2
+// GFX12: encoding: [0x67,0x02,0x05,0xa4]
+
+s_cvt_pk_rtz_f16_f32 s5, vcc_lo, s2
+// GFX12: encoding: [0x6a,0x02,0x05,0xa4]
+
+s_cvt_pk_rtz_f16_f32 s5, vcc_hi, s2
+// GFX12: encoding: [0x6b,0x02,0x05,0xa4]
+
+s_cvt_pk_rtz_f16_f32 s5, ttmp11, s2
+// GFX12: encoding: [0x77,0x02,0x05,0xa4]
+
+s_cvt_pk_rtz_f16_f32 s5, m0, s2
+// GFX12: encoding: [0x7d,0x02,0x05,0xa4]
+
+s_cvt_pk_rtz_f16_f32 s5, exec_lo, s2
+// GFX12: encoding: [0x7e,0x02,0x05,0xa4]
+
+s_cvt_pk_rtz_f16_f32 s5, exec_hi, s2
+// GFX12: encoding: [0x7f,0x02,0x05,0xa4]
+
+s_cvt_pk_rtz_f16_f32 s5, 0, s2
+// GFX12: encoding: [0x80,0x02,0x05,0xa4]
+
+s_cvt_pk_rtz_f16_f32 s5, -1, s2
+// GFX12: encoding: [0xc1,0x02,0x05,0xa4]
+
+s_cvt_pk_rtz_f16_f32 s5, 0.5, s2
+// GFX12: encoding: [0xf0,0x02,0x05,0xa4]
+
+s_cvt_pk_rtz_f16_f32 s5, -4.0, s2
+// GFX12: encoding: [0xf7,0x02,0x05,0xa4]
+
+s_cvt_pk_rtz_f16_f32 s5, 0xaf123456, s2
+// GFX12: encoding: [0xff,0x02,0x05,0xa4,0x56,0x34,0x12,0xaf]
+
+s_cvt_pk_rtz_f16_f32 s5, 0x3f717273, s2
+// GFX12: encoding: [0xff,0x02,0x05,0xa4,0x73,0x72,0x71,0x3f]
+
+s_cvt_pk_rtz_f16_f32 s5, s1, s105
+// GFX12: encoding: [0x01,0x69,0x05,0xa4]
+
+s_add_f16 s5, s1, s2
+// GFX12: encoding: [0x01,0x02,0x85,0xa4]
+
+s_add_f16 s105, s1, s2
+// GFX12: encoding: [0x01,0x02,0xe9,0xa4]
+
+s_add_f16 s5, s105, s2
+// GFX12: encoding: [0x69,0x02,0x85,0xa4]
+
+s_add_f16 s5, s101, s2
+// GFX12: encoding: [0x65,0x02,0x85,0xa4]
+
+s_add_f16 s5, vcc_lo, s2
+// GFX12: encoding: [0x6a,0x02,0x85,0xa4]
+
+s_add_f16 s5, vcc_hi, s2
+// GFX12: encoding: [0x6b,0x02,0x85,0xa4]
+
+s_add_f16 s5, m0, s2
+// GFX12: encoding: [0x7d,0x02,0x85,0xa4]
+
+s_add_f16 s5, exec_lo, s2
+// GFX12: encoding: [0x7e,0x02,0x85,0xa4]
+
+s_add_f16 s5, exec_hi, s2
+// GFX12: encoding: [0x7f,0x02,0x85,0xa4]
+
+s_add_f16 s5, 0, s2
+// GFX12: encoding: [0x80,0x02,0x85,0xa4]
+
+s_add_f16 s5, -1, s2
+// GFX12: encoding: [0xc1,0x02,0x85,0xa4]
+
+s_add_f16 s5, 0.5, s2
+// GFX12: encoding: [0xf0,0x02,0x85,0xa4]
+
+s_add_f16 s5, -4.0, s2
+// GFX12: encoding: [0xf7,0x02,0x85,0xa4]
+
+s_add_f16 s5, 0xfe0b, s2
+// GFX12: encoding: [0xff,0x02,0x85,0xa4,0x0b,0xfe,0x00,0x00]
+
+s_add_f16 s5, 0x3456, s2
+// GFX12: encoding: [0xff,0x02,0x85,0xa4,0x56,0x34,0x00,0x00]
+
+s_add_f16 s5, s1, s105
+// GFX12: encoding: [0x01,0x69,0x85,0xa4]
+
+s_sub_f16 s5, s1, s2
+// GFX12: encoding: [0x01,0x02,0x05,0xa5]
+
+s_sub_f16 s105, s1, s2
+// GFX12: encoding: [0x01,0x02,0x69,0xa5]
+
+s_sub_f16 s5, s105, s2
+// GFX12: encoding: [0x69,0x02,0x05,0xa5]
+
+s_sub_f16 s5, s101, s2
+// GFX12: encoding: [0x65,0x02,0x05,0xa5]
+
+s_sub_f16 s5, vcc_lo, s2
+// GFX12: encoding: [0x6a,0x02,0x05,0xa5]
+
+s_sub_f16 s5, vcc_hi, s2
+// GFX12: encoding: [0x6b,0x02,0x05,0xa5]
+
+s_sub_f16 s5, m0, s2
+// GFX12: encoding: [0x7d,0x02,0x05,0xa5]
+
+s_sub_f16 s5, exec_lo, s2
+// GFX12: encoding: [0x7e,0x02,0x05,0xa5]
+
+s_sub_f16 s5, exec_hi, s2
+// GFX12: encoding: [0x7f,0x02,0x05,0xa5]
+
+s_sub_f16 s5, 0, s2
+// GFX12: encoding: [0x80,0x02,0x05,0xa5]
+
+s_sub_f16 s5, -1, s2
+// GFX12: encoding: [0xc1,0x02,0x05,0xa5]
+
+s_sub_f16 s5, 0.5, s2
+// GFX12: encoding: [0xf0,0x02,0x05,0xa5]
+
+s_sub_f16 s5, -4.0, s2
+// GFX12: encoding: [0xf7,0x02,0x05,0xa5]
+
+s_sub_f16 s5, 0xfe0b, s2
+// GFX12: encoding: [0xff,0x02,0x05,0xa5,0x0b,0xfe,0x00,0x00]
+
+s_sub_f16 s5, 0x3456, s2
+// GFX12: encoding: [0xff,0x02,0x05,0xa5,0x56,0x34,0x00,0x00]
+
+s_sub_f16 s5, s1, s105
+// GFX12: encoding: [0x01,0x69,0x05,0xa5]
+
+s_mul_f16 s5, s1, s2
+// GFX12: encoding: [0x01,0x02,0x85,0xa6]
+
+s_mul_f16 s105, s1, s2
+// GFX12: encoding: [0x01,0x02,0xe9,0xa6]
+
+s_mul_f16 s5, s105, s2
+// GFX12: encoding: [0x69,0x02,0x85,0xa6]
+
+s_mul_f16 s5, s101, s2
+// GFX12: encoding: [0x65,0x02,0x85,0xa6]
+
+s_mul_f16 s5, vcc_lo, s2
+// GFX12: encoding: [0x6a,0x02,0x85,0xa6]
+
+s_mul_f16 s5, vcc_hi, s2
+// GFX12: encoding: [0x6b,0x02,0x85,0xa6]
+
+s_mul_f16 s5, m0, s2
+// GFX12: encoding: [0x7d,0x02,0x85,0xa6]
+
+s_mul_f16 s5, exec_lo, s2
+// GFX12: encoding: [0x7e,0x02,0x85,0xa6]
+
+s_mul_f16 s5, exec_hi, s2
+// GFX12: encoding: [0x7f,0x02,0x85,0xa6]
+
+s_mul_f16 s5, 0, s2
+// GFX12: encoding: [0x80,0x02,0x85,0xa6]
+
+s_mul_f16 s5, -1, s2
+// GFX12: encoding: [0xc1,0x02,0x85,0xa6]
+
+s_mul_f16 s5, 0.5, s2
+// GFX12: encoding: [0xf0,0x02,0x85,0xa6]
+
+s_mul_f16 s5, -4.0, s2
+// GFX12: encoding: [0xf7,0x02,0x85,0xa6]
+
+s_mul_f16 s5, 0xfe0b, s2
+// GFX12: encoding: [0xff,0x02,0x85,0xa6,0x0b,0xfe,0x00,0x00]
+
+s_mul_f16 s5, 0x3456, s2
+// GFX12: encoding: [0xff,0x02,0x85,0xa6,0x56,0x34,0x00,0x00]
+
+s_mul_f16 s5, s1, s105
+// GFX12: encoding: [0x01,0x69,0x85,0xa6]
+
+s_fmac_f16 s5, s1, s2
+// GFX12: encoding: [0x01,0x02,0x05,0xa7]
+
+s_fmac_f16 s105, s1, s2
+// GFX12: encoding: [0x01,0x02,0x69,0xa7]
+
+s_fmac_f16 s5, s105, s2
+// GFX12: encoding: [0x69,0x02,0x05,0xa7]
+
+s_fmac_f16 s5, s103, s2
+// GFX12: encoding: [0x67,0x02,0x05,0xa7]
+
+s_fmac_f16 s5, vcc_lo, s2
+// GFX12: encoding: [0x6a,0x02,0x05,0xa7]
+
+s_fmac_f16 s5, vcc_hi, s2
+// GFX12: encoding: [0x6b,0x02,0x05,0xa7]
+
+s_fmac_f16 s5, ttmp11, s2
+// GFX12: encoding: [0x77,0x02,0x05,0xa7]
+
+s_fmac_f16 s5, m0, s2
+// GFX12: encoding: [0x7d,0x02,0x05,0xa7]
+
+s_fmac_f16 s5, exec_lo, s2
+// GFX12: encoding: [0x7e,0x02,0x05,0xa7]
+
+s_fmac_f16 s5, exec_hi, s2
+// GFX12: encoding: [0x7f,0x02,0x05,0xa7]
+
+s_fmac_f16 s5, 0, s2
+// GFX12: encoding: [0x80,0x02,0x05,0xa7]
+
+s_fmac_f16 s5, -1, s2
+// GFX12: encoding: [0xc1,0x02,0x05,0xa7]
+
+s_fmac_f16 s5, 0.5, s2
+// GFX12: encoding: [0xf0,0x02,0x05,0xa7]
+
+s_fmac_f16 s5, -4.0, s2
+// GFX12: encoding: [0xf7,0x02,0x05,0xa7]
+
+s_fmac_f16 s5, 0x1234, s2
+// GFX12: encoding: [0xff,0x02,0x05,0xa7,0x34,0x12,0x00,0x00]
+
+s_fmac_f16 s5, s1, s105
+// GFX12: encoding: [0x01,0x69,0x05,0xa7]
+
+s_max_num_f16 s5, s1, s2
+// GFX12: encoding: [0x01,0x02,0x05,0xa6]
+
+s_max_num_f16 s105, s1, s2
+// GFX12: encoding: [0x01,0x02,0x69,0xa6]
+
+s_max_num_f16 s5, s105, s2
+// GFX12: encoding: [0x69,0x02,0x05,0xa6]
+
+s_max_num_f16 s5, s101, s2
+// GFX12: encoding: [0x65,0x02,0x05,0xa6]
+
+s_max_num_f16 s5, vcc_lo, s2
+// GFX12: encoding: [0x6a,0x02,0x05,0xa6]
+
+s_max_num_f16 s5, vcc_hi, s2
+// GFX12: encoding: [0x6b,0x02,0x05,0xa6]
+
+s_max_num_f16 s5, m0, s2
+// GFX12: encoding: [0x7d,0x02,0x05,0xa6]
+
+s_max_num_f16 s5, exec_lo, s2
+// GFX12: encoding: [0x7e,0x02,0x05,0xa6]
+
+s_max_num_f16 s5, exec_hi, s2
+// GFX12: encoding: [0x7f,0x02,0x05,0xa6]
+
+s_max_num_f16 s5, 0, s2
+// GFX12: encoding: [0x80,0x02,0x05,0xa6]
+
+s_max_num_f16 s5, -1, s2
+// GFX12: encoding: [0xc1,0x02,0x05,0xa6]
+
+s_max_num_f16 s5, 0.5, s2
+// GFX12: encoding: [0xf0,0x02,0x05,0xa6]
+
+s_max_num_f16 s5, -4.0, s2
+// GFX12: encoding: [0xf7,0x02,0x05,0xa6]
+
+s_max_num_f16 s5, 0xfe0b, s2
+// GFX12: encoding: [0xff,0x02,0x05,0xa6,0x0b,0xfe,0x00,0x00]
+
+s_max_num_f16 s5, 0x3456, s2
+// GFX12: encoding: [0xff,0x02,0x05,0xa6,0x56,0x34,0x00,0x00]
+
+s_max_num_f16 s5, s1, s105
+// GFX12: encoding: [0x01,0x69,0x05,0xa6]
+
+s_min_num_f16 s5, s1, s2
+// GFX12: encoding: [0x01,0x02,0x85,0xa5]
+
+s_min_num_f16 s105, s1, s2
+// GFX12: encoding: [0x01,0x02,0xe9,0xa5]
+
+s_min_num_f16 s5, s105, s2
+// GFX12: encoding: [0x69,0x02,0x85,0xa5]
+
+s_min_num_f16 s5, s101, s2
+// GFX12: encoding: [0x65,0x02,0x85,0xa5]
+
+s_min_num_f16 s5, vcc_lo, s2
+// GFX12: encoding: [0x6a,0x02,0x85,0xa5]
+
+s_min_num_f16 s5, vcc_hi, s2
+// GFX12: encoding: [0x6b,0x02,0x85,0xa5]
+
+s_min_num_f16 s5, m0, s2
+// GFX12: encoding: [0x7d,0x02,0x85,0xa5]
+
+s_min_num_f16 s5, exec_lo, s2
+// GFX12: encoding: [0x7e,0x02,0x85,0xa5]
+
+s_min_num_f16 s5, exec_hi, s2
+// GFX12: encoding: [0x7f,0x02,0x85,0xa5]
+
+s_min_num_f16 s5, 0, s2
+// GFX12: encoding: [0x80,0x02,0x85,0xa5]
+
+s_min_num_f16 s5, -1, s2
+// GFX12: encoding: [0xc1,0x02,0x85,0xa5]
+
+s_min_num_f16 s5, 0.5, s2
+// GFX12: encoding: [0xf0,0x02,0x85,0xa5]
+
+s_min_num_f16 s5, -4.0, s2
+// GFX12: encoding: [0xf7,0x02,0x85,0xa5]
+
+s_min_num_f16 s5, 0xfe0b, s2
+// GFX12: encoding: [0xff,0x02,0x85,0xa5,0x0b,0xfe,0x00,0x00]
+
+s_min_num_f16 s5, 0x3456, s2
+// GFX12: encoding: [0xff,0x02,0x85,0xa5,0x56,0x34,0x00,0x00]
+
+s_min_num_f16 s5, s1, s105
+// GFX12: encoding: [0x01,0x69,0x85,0xa5]
+
+s_min_f32 s5, s1, s2
+// GFX12: encoding: [0x01,0x02,0x05,0xa1]
+
+s_min_f32 s105, s1, s2
+// GFX12: encoding: [0x01,0x02,0x69,0xa1]
+
+s_min_f32 s5, s105, s2
+// GFX12: encoding: [0x69,0x02,0x05,0xa1]
+
+s_min_f32 s5, s103, s2
+// GFX12: encoding: [0x67,0x02,0x05,0xa1]
+
+s_min_f32 s5, vcc_lo, s2
+// GFX12: encoding: [0x6a,0x02,0x05,0xa1]
+
+s_min_f32 s5, vcc_hi, s2
+// GFX12: encoding: [0x6b,0x02,0x05,0xa1]
+
+s_min_f32 s5, ttmp11, s2
+// GFX12: encoding: [0x77,0x02,0x05,0xa1]
+
+s_min_f32 s5, m0, s2
+// GFX12: encoding: [0x7d,0x02,0x05,0xa1]
+
+s_min_f32 s5, exec_lo, s2
+// GFX12: encoding: [0x7e,0x02,0x05,0xa1]
+
+s_min_f32 s5, exec_hi, s2
+// GFX12: encoding: [0x7f,0x02,0x05,0xa1]
+
+s_min_f32 s5, 0, s2
+// GFX12: encoding: [0x80,0x02,0x05,0xa1]
+
+s_min_f32 s5, -1, s2
+// GFX12: encoding: [0xc1,0x02,0x05,0xa1]
+
+s_min_f32 s5, 0.5, s2
+// GFX12: encoding: [0xf0,0x02,0x05,0xa1]
+
+s_min_f32 s5, -4.0, s2
+// GFX12: encoding: [0xf7,0x02,0x05,0xa1]
+
+s_min_f32 s5, 0xaf123456, s2
+// GFX12: encoding: [0xff,0x02,0x05,0xa1,0x56,0x34,0x12,0xaf]
+
+s_min_f32 s5, 0x3f717273, s2
+// GFX12: encoding: [0xff,0x02,0x05,0xa1,0x73,0x72,0x71,0x3f]
+
+s_min_f32 s5, s1, s105
+// GFX12: encoding: [0x01,0x69,0x05,0xa1]
+
+s_max_f32 s5, s1, s2
+// GFX12: encoding: [0x01,0x02,0x85,0xa1]
+
+s_max_f32 s105, s1, s2
+// GFX12: encoding: [0x01,0x02,0xe9,0xa1]
+
+s_max_f32 s5, s105, s2
+// GFX12: encoding: [0x69,0x02,0x85,0xa1]
+
+s_max_f32 s5, s103, s2
+// GFX12: encoding: [0x67,0x02,0x85,0xa1]
+
+s_max_f32 s5, vcc_lo, s2
+// GFX12: encoding: [0x6a,0x02,0x85,0xa1]
+
+s_max_f32 s5, vcc_hi, s2
+// GFX12: encoding: [0x6b,0x02,0x85,0xa1]
+
+s_max_f32 s5, ttmp11, s2
+// GFX12: encoding: [0x77,0x02,0x85,0xa1]
+
+s_max_f32 s5, m0, s2
+// GFX12: encoding: [0x7d,0x02,0x85,0xa1]
+
+s_max_f32 s5, exec_lo, s2
+// GFX12: encoding: [0x7e,0x02,0x85,0xa1]
+
+s_max_f32 s5, exec_hi, s2
+// GFX12: encoding: [0x7f,0x02,0x85,0xa1]
+
+s_max_f32 s5, 0, s2
+// GFX12: encoding: [0x80,0x02,0x85,0xa1]
+
+s_max_f32 s5, -1, s2
+// GFX12: encoding: [0xc1,0x02,0x85,0xa1]
+
+s_max_f32 s5, 0.5, s2
+// GFX12: encoding: [0xf0,0x02,0x85,0xa1]
+
+s_max_f32 s5, -4.0, s2
+// GFX12: encoding: [0xf7,0x02,0x85,0xa1]
+
+s_max_f32 s5, 0xaf123456, s2
+// GFX12: encoding: [0xff,0x02,0x85,0xa1,0x56,0x34,0x12,0xaf]
+
+s_max_f32 s5, 0x3f717273, s2
+// GFX12: encoding: [0xff,0x02,0x85,0xa1,0x73,0x72,0x71,0x3f]
+
+s_max_f32 s5, s1, s105
+// GFX12: encoding: [0x01,0x69,0x85,0xa1]
+
+s_max_f16 s5, s1, s2
+// GFX12: encoding: [0x01,0x02,0x05,0xa6]
+
+s_max_f16 s105, s1, s2
+// GFX12: encoding: [0x01,0x02,0x69,0xa6]
+
+s_max_f16 s5, s105, s2
+// GFX12: encoding: [0x69,0x02,0x05,0xa6]
+
+s_max_f16 s5, s101, s2
+// GFX12: encoding: [0x65,0x02,0x05,0xa6]
+
+s_max_f16 s5, vcc_lo, s2
+// GFX12: encoding: [0x6a,0x02,0x05,0xa6]
+
+s_max_f16 s5, vcc_hi, s2
+// GFX12: encoding: [0x6b,0x02,0x05,0xa6]
+
+s_max_f16 s5, m0, s2
+// GFX12: encoding: [0x7d,0x02,0x05,0xa6]
+
+s_max_f16 s5, exec_lo, s2
+// GFX12: encoding: [0x7e,0x02,0x05,0xa6]
+
+s_max_f16 s5, exec_hi, s2
+// GFX12: encoding: [0x7f,0x02,0x05,0xa6]
+
+s_max_f16 s5, 0, s2
+// GFX12: encoding: [0x80,0x02,0x05,0xa6]
+
+s_max_f16 s5, -1, s2
+// GFX12: encoding: [0xc1,0x02,0x05,0xa6]
+
+s_max_f16 s5, 0.5, s2
+// GFX12: encoding: [0xf0,0x02,0x05,0xa6]
+
+s_max_f16 s5, -4.0, s2
+// GFX12: encoding: [0xf7,0x02,0x05,0xa6]
+
+s_max_f16 s5, 0xfe0b, s2
+// GFX12: encoding: [0xff,0x02,0x05,0xa6,0x0b,0xfe,0x00,0x00]
+
+s_max_f16 s5, 0x3456, s2
+// GFX12: encoding: [0xff,0x02,0x05,0xa6,0x56,0x34,0x00,0x00]
+
+s_max_f16 s5, s1, s105
+// GFX12: encoding: [0x01,0x69,0x05,0xa6]
+
+s_min_f16 s5, s1, s2
+// GFX12: encoding: [0x01,0x02,0x85,0xa5]
+
+s_min_f16 s105, s1, s2
+// GFX12: encoding: [0x01,0x02,0xe9,0xa5]
+
+s_min_f16 s5, s105, s2
+// GFX12: encoding: [0x69,0x02,0x85,0xa5]
+
+s_min_f16 s5, s101, s2
+// GFX12: encoding: [0x65,0x02,0x85,0xa5]
+
+s_min_f16 s5, vcc_lo, s2
+// GFX12: encoding: [0x6a,0x02,0x85,0xa5]
+
+s_min_f16 s5, vcc_hi, s2
+// GFX12: encoding: [0x6b,0x02,0x85,0xa5]
+
+s_min_f16 s5, m0, s2
+// GFX12: encoding: [0x7d,0x02,0x85,0xa5]
+
+s_min_f16 s5, exec_lo, s2
+// GFX12: encoding: [0x7e,0x02,0x85,0xa5]
+
+s_min_f16 s5, exec_hi, s2
+// GFX12: encoding: [0x7f,0x02,0x85,0xa5]
+
+s_min_f16 s5, 0, s2
+// GFX12: encoding: [0x80,0x02,0x85,0xa5]
+
+s_min_f16 s5, -1, s2
+// GFX12: encoding: [0xc1,0x02,0x85,0xa5]
+
+s_min_f16 s5, 0.5, s2
+// GFX12: encoding: [0xf0,0x02,0x85,0xa5]
+
+s_min_f16 s5, -4.0, s2
+// GFX12: encoding: [0xf7,0x02,0x85,0xa5]
+
+s_min_f16 s5, 0xfe0b, s2
+// GFX12: encoding: [0xff,0x02,0x85,0xa5,0x0b,0xfe,0x00,0x00]
+
+s_min_f16 s5, 0x3456, s2
+// GFX12: encoding: [0xff,0x02,0x85,0xa5,0x56,0x34,0x00,0x00]
+
+s_min_f16 s5, s1, s105
+// GFX12: encoding: [0x01,0x69,0x85,0xa5]
----------------
DadSchoorse wrote:

Shouldn't these be in `gfx12_asm_sop2_alias.s`?

https://github.com/llvm/llvm-project/pull/74305


More information about the llvm-commits mailing list