136b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarll#include <stdio.h>
25bd4f6d6531cfa8534d063e2a5adc43cbcd343e1carll#ifdef SUPPORTS_HTM
336b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarllint __attribute__ ((noinline)) htm_begin (int r3, int r4)
436b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarll{
536b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarll   int ret;
636b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarll
736b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarll   if (__builtin_tbegin (0)) {
836b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarll      ret = r3;
936b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarll      __builtin_tend (0);
1036b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarll   } else {
1136b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarll      ret = r4;
1236b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarll   } return ret;
1336b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarll}
1440fc342595f93fdaabe64b617c4e5b4a8a09eab2carll#endif
1536b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarll
1636b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarllint main (void) {
175bd4f6d6531cfa8534d063e2a5adc43cbcd343e1carll#ifdef SUPPORTS_HTM
1836b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarll   int ret;
1936b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarll   ret = htm_begin (10, 20);
2036b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarll   printf ("ret = %d, expected = 10\n", ret);
215bd4f6d6531cfa8534d063e2a5adc43cbcd343e1carll#else
225bd4f6d6531cfa8534d063e2a5adc43cbcd343e1carll   printf ("No HTM support.");
2340fc342595f93fdaabe64b617c4e5b4a8a09eab2carll#endif
2436b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarll   return 0;
2536b4a94f7f0fe9fe3e79986f7082bedd6ba6cb8ccarll}
26